ubuntu下搭建git server

git server搭建
硬件需求:一台Ubuntu或者debian电脑(虚拟机),能通过网络访问到。
软件需求:git-core, gitosis, openssh-server, openssh-client, Apache2(Gitweb)
安装配置git服务器
安装git和openssh:
a@server:~$ sudo apt-get install git-core openssh-server
a@server:~$ sudo apt-get install git-core openssh-client
a@server:~$ sudo apt-get install python-setuptools
获得gitosis包:
a@server:/tmp$ git clone git://eagain.net/gitosis.git   如果gitosis.git下载不下来,就直接到https://github.com/tv42/gitosis 下载zip压缩文件。
a@server:/tmp$ cd gitosis
a@server:/tmp/gitosis$ sudo python setup.py install

a@server:~$ sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /share1 git              =======创建一个用户名叫git的git用户,不需要密码,相关的git管理创建子在/share1目录下
a@server:~$ cd /share1
将客户端的公钥拷贝过来
如果你将作为git服务器的管理员,那么在你的电 脑上(另一台pc)生成ssh公钥:
usr@pc1:~$ ssh-keygen -t rsa
将公钥拷贝到服务器的/tmp下:
usr@pc1:~$ scp .ssh/id_rsa.pub git@<server>:/tmp
usr@pc1:~$ git clone git@shlabdd:gitosis-admin.git   =============这个时候拷贝肯定会出问题,原因是公钥没有配好
usr@pc1:~$ sudo ssh-add id_rsa.pub              ============呵呵 这下就可以了
usr@pc1:~$ git clone git@shlabdd:gitosis-admin.git
usr@pc1:usr@pc1:~$ ls
gitosis.conf  keydir

增加一个GIT子项目管理test
mkdir ptest
cd ptest
git clone git@shlabdd:gitosis-admin.git
cd gitosis-admin/
vim gitosis.conf
git commit -am "creat test"
git remote -v
git branch
git push origin master
git log
cd ..
git clone [email protected].**:test.git

[gitosis]

[group gitosis-admin]
members = pengp@pengpx
writable = gitosis-admin

[group test]
members = pengp@pengpx
writable = test

提交:
cd gitosis-admin/
vim gitosis.conf
git add
git push
git commit -s "ajf;"
git push
这个时候 会在服务端和客户端看到多了一个文件夹test 但是这是利用git来管理的,所以在服务器端的目录是没有权限打开和管理的,如果要增加其他的用户使用,需要修改配置文件,将用户增加的相应的项目组中
git help 命令  查看不了解的命令
注意:git reset --hard commi_id
git pull .
结果reset掉的patch不能回复,纳闷了一下,才知道要用命令git pull不需要后面的点

此刻只是有usr@pc1这一个用户可以对整个的项目可以进行运用,如果要在test项目管理中加入usr@pc2这个用户,就需要在
usr@pc1:~/pptest/gitosis-admin$ vim gitosis.conf
  1 [gitosis]
  2
  3 [group gitosis-admin]
  4 members = usr@pc1
  5 writable = gitosis-admin
  6
  7 [group test]
  8 members = usr@pc1
  9 members = usr@pc2           ======>加入这行
 10 writable = test
 11
 12 [group peng]
 13 members = usr@pc1
 14 writable = peng

usr@pc1:~/pptest/gitosis-admin$ git push
这个时候在bobo@bobo的终端还是不能git clone,还需要拷贝它的公钥到相应的目录,然后提交
usr@pc1:~/pptest/gitosis-admin/keydir$ scp usr@pc2:~/.ssh/id_rsa.pub .                  ============》拷贝密
usr@pc1:~$ ls
usr@pc1:usr@pc1:~$sr@pc1:usr@pc1:usr@pc1:usr@pc1:usr@pc1:~/pptest/gitosis-admin/keydir$ mv id_rsa.pub [email protected]                        ============》修改公钥的名字,与gitosis.conf 中的命名相符合

你可能感兴趣的:(ubuntu下搭建git server)