Ubuntu上搭建git服务器

在服务器上部署 Git


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.csdn.net/mydeman/article/details/7579411




















































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值