1。先安装 gitweb和 apache2
2. 修改配置文件(因为gitweb在/etc/apache2/conf.d/下安装了配置文件,这个目录是过时的):
sudo cp /etc/apache2/conf.d/gitweb /etc/apache2/conf-available/gitweb.conf cd /etc/apache2/conf-enabled sudo ln -s ../conf-available/gitweb.conf
Alias /gitweb /usr/share/gitweb <Directory /usr/share/gitweb> Options +FollowSymLinks +ExecCGI AddHandler cgi-script .cgi </Directory>(在 FollowSymLinks之前加上了 "+"解决语法问题)
3. 使能cgi:
sudo a2enmod cgi sudo service apache2 restart
$projectroot = "/home/charles/repo"; $projects_list = $projectroot;
5. 创建项目信息.
把项目信息和实际代码分开。
mkdir repo cd repo/ git clone --bare ~/code/linux-3.10.28 linux-3.10.28
然后,打开 http://localhost/gitweb/linux-3.10.28, 就能看到项目信息了。
6。因为 gitweb 的数据来源和实际的代码不在同一个地方,所以,需要经常更新 ~/repo。
这可以用一个脚本来实现:
#!/bin/bash cd ${HOME}/code/linux-3.10.28 git remote add web /home/charles/repo/linux-3.10.28 >& /dev/null sudo git push -f web如果有下面的警告,
warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the current behavior after the default changes, use: git config --global push.default matching To squelch this message and adopt the new behavior now, use: git config --global push.default simple When push.default is set to 'matching', git will push local branches to the remote branches that already exist with the same name.执行
git config --global push.default matching
可以自动化的来更新:
crontab -l * * * * * ${HOME}/foo/git.web.push
1. Install git/gitolite/gitweb on Ubuntu 14.04
2. Setting up Gitweb on your Ubuntu workstation