1:install the tools
a:sudo apt-get install gitweb openssh-sever openssh-client lighttpd python-setuptools
2:config the server
a:edit the /etc/lighttpd/lighttpd.conf
server.modules = (
"mod_cgi",
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
# "mod_rewrite",
# "mod_redirect",
# "mod_evhost",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_webdav",
# "mod_expire",
# "mod_flv_streaming",
# "mod_evasive"
)
server.document-root = "/home/git/repositories"
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ,".cgi" )
$HTTP["host"] =~ "^10.1.1.4$" {
cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl",
".py" => "/usr/bin/python" )
alias.url += (
"/gitweb.css" => "/usr/share/gitweb/gitweb.css",
"/git-logo.png" => "/usr/share/gitweb/git-logo.png",
"/git-favicon.png" => "/usr/share/gitweb/git-favicon.png",
"/" => "/usr/lib/cgi-bin/gitweb.cgi"
)
}
b:edit the /etc/gitweb.conf
$projectroot = "/home/git/repositories";
(网上说还应更改$projects_list = "/home/git/gitosis/projects.list";,通过gitweb=yes,daemon=yes来控制gitweb的显示,但是在不知道什么地方的设置有问题,如果修改了projects_list,那么gitweb就什么都不显示了)
c:sudo /etc/init.d/lighttpd restart 在浏览器中输入10.1.1.4就可以看到效果了。
3:edit the Gitosis
a:
# git clone git://eagain.net/gitosis.git
# cd gitosis
# python setup.py install
b:添加git 用户
c:
#sh-keygen -t rsa
#scp ~/.ssh/id_rsa.pub git@10.1.14:/home/git/
#su git (切换到git用户)
#gitosis-init < id_rsa.pub
#rm id_rsa.pub
#chmod 755 /home/git/repositories -R
d:
#su lcq(切换回工作目录)
#git clone git@10.1.1.4:gitosis-admin.git
gitosis-admin中的gitosis.conf为配置文件,keydir中位给用户的ssh key.现在添加一个新的项目如下
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = lcq@lcq-desktop
[group git-study]
writable = git-study
members = lcq@lcq-desktop
#git add .
#git commit
#git push
这样gitosis的配置就提交到服务器了。现在开始新建一个刚才在配置文件中新建的工程git-study
#mkdir git-study
#cd git-study
#touch hi.c
#git init
#git add .
#git commit
第一次提交时
#git remote add origin git@10.1.1.4:git-study.git
#git push origin master
或者
#git push git@10.1.1.4:git-study.git master
以后git push就可以了
e:添加用户(eg:test)
#sh-keygen -t rsa
#cp ~/.ssh/id_rsa.pub ~/test@test-desktop.pub
#su lcq
#cd gitosis-admin/keydir
#cp /home/test/test@test-desktop.pub ./
编辑gitosis.conf
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = lcq@lcq-desktop
[group git-study]
writable = git-study
members = lcq@lcq-desktop test@test-desktop
#git add .
#git commit
#git push
现在test用户就具有了读写git-study的权限了