1、在服务器上安装git软件
#apt-get install git
2、在服务创建一个git用户(一般是基于一个用户来访问操作的):
#useradd -m -p /bin/bash git
#passwd git
#su - git
以下在git用户操作
3、创建一个仓库(可以在git用户的根目录):
#mkdir my_project
#cd my_project/
#git init
4、创建裸仓库:
#git clone --bare my_project my_project.git
5、把裸仓库移到服务器上(试验只是在本地操作,远程的可以使用scp):
#su
#mkdir /repo
#chown git.git repo/
#su - git //切换至root用户,在根目录创建文件
#cp -rf my_project.git /repo/
6、支持SSH协议远程访问(服务器端架设 SSH 访问):
a、用户根目录不存在.ssh目录的,要执行:#ssh-keygen
b、从其他要使用git的用户,获取他们的公钥
#scp liujf@192.168.91.220:~/.ssh/id_rsa.pub liujf.pub
c、将用户公钥追加到.ssh/aauthorized_keys 来给用户授权
#cat liujf.pub >> .ssh/authorized_keys
7、通过以上操作,用用户端就可以操作git服务器的项目了。
在liujf用户上操作:
#git clone git@192.168.71.212:/repo/my_project.git
在服务器上部署gitweb
1、先安装gitweb
#apt-get install gitweb
2、配置并启动gitweb
#cp /etc/apache2/conf.d/gitweb /etc/apache2/conf-available/gitweb.conf
#cd /etc/apache2/conf-enabled
#sudo ln -s ../conf-available/gitweb.conf
3、确认gitweb.conf内容:
#<VirtualHost *:8056>
2 Alias /gitweb /usr/share/gitweb
3
4 <Directory /usr/share/gitweb>
5 Options +FollowSymLinks +ExecCGI
6 AddHandler cgi-script .cgi
7 </Directory>
8 ServerName localhost
9 #</VirtualHost>
注:第5行 的两个+号,默认第一个+是没有的,要注意添加。
4、使config生效并重启apacha2
#a2enmod cgi
#service apache2 restart
5、指定git 仓库根目录:
#vi /etc/gitweb.conf
确认projectroot 和projects_list的配置指向根目录
$projectroot = "/home/git/";
$projects_list = $projectroot;
在服务器上部署gitolite(在git用户上操作)
1、安装gitolite:
#git clone git://github.com/sitaramc/gitolite
#mkdir /home/git/bin //要创建这个文件夹,不然安装会报错
#export PATH="$PATH:$HOME/bin" //加入git用户的环境变量
#gitolite/install -ln //这样就在/home/git/bin产生gitolite可执行文件
#cp .ssh/id_rsa.pub git.pub //复制git的公钥文件
#gitolite setup -pk $HOME/git.pub
命令执行完成后就会产生在/home/git目中在产生repositories目录
2、在git用户创建一个gitolite-admin仓库
#git clone git@192.168.71.212:gitolite-admin.git //IP地址也就git用户所在的这个服务器的IP
3、添加一个管理员:
注:首先要确保该用户不能通过ssh登录git账户,也就是git账户的根目录 .ssh/authorized_keys里面没有要添加的
用户公钥信息。因为gitolite添加用户时自己会往这里面追加用户公钥信息。
1、切换至git管理员权限的账户,
2、修改配置文件:#cd gitolite-admin/conf/gitolite.conf
3、repo gitolite-admin:增加:RW+ = liujf
4、把“gitolite.conf”上传到服务器。git add 和 git commit 、 git push到服务器。
5、切换至用户,clone管理配置文件:git clone git@192.168.71.212:gitolite-admin.git //即可
注:如果clone不下来,有可能是ssh问题。
写完发现还有一篇比较好的:http://blog.youkuaiyun.com/mydeman/article/details/7579411