git server搭建

最近的项目一直使用git,于是在虚拟机上安装了一个git server。参照别人的资料,走了不少弯路,于是把安装步骤记录下来,以资参考。

这里是使用gitosis来进行公钥和库的管理。


1. 创建git用户

  • 1). >> sudo useradd -r -s /bin/sh -m git
  • 2). >> sudo passwd git

2. 安装git

  • 1). >> sudo apt-get install git-core
  • 2). >> git config --global user.name "git"
  • 3). >> git config --global user.email "git@git.com"


3. 安装python setuptools

  • 1). >> wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
  • 2). >> tar zxvf setuptools-0.6c11.tar.gz
  • 3). >> cd setuptools-0.6c11
  • 4). >> python setup.py build
  • 5). >> python setup.py install


4. 安装gitosis

  • 1). >> cd /tmp
  • 2). >> git clone https://github.com/amusal/gitosis.git
  • 3). >> cd gitosis
  • 4). >> python setup.py install


5. 初始化gitosis

  • 1). 切换到git用户
  • 2). 生成gitosis管理者的id_rsa.pub文件

在需要对gitosis做管理的机器上面(windowsxp为例),打开git bash:
>> ssh-keygen -t rsa
一路回车,如要求填yes/no则选yes,完成之后在当前用户的主目录下会生成.ssh文件夹,id_rsa.pub便位于其中。
如果不知道当前主目录的路径,可以在git bash下输入命令查看:
>> echo $HOME

  • 3). 把刚生成的id_rsa.pub文件传到gitserver上的/tmp目录

并修改该文件访问权限 chmod 755 id_rsa.pub

  • 4). sudo -H -u git gitosis-init < /tmp/id_rsa.pub

如安装成功会显示:
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
此时/home/git下会创建gitosis和repositories目录。其中repositories目录是资源库目录,我们的项目都托管于该目录下。
在repositories下默认会有一个gitosis-admin.git目录,该目录下存放的是gitosis的管理项目,我们要通过它来对gitosis的权限进行管理,详见下文。


6. 修改上传权限

  • chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update


7. gitosis管理

  • 1). 使用对git做管理的电脑账号(即生成id_rsa.pub文件的电脑):

>> clone git@[remote.server]:gitosis-admin.git

  • 2). cd gitosis-admin
  • 3). vi gitosis.conf

显示:
[gitosis]
[group gitosis-admin]
members = johnson@Johnson-BBACED
writable = gitosis-admin

其中,[group gitosis-admin]表示名字为gitosis-admin的组
writable表示可写的项目名,members表示具有writable指定权限的用户名。在keydir目录下,上传的id_rsa.pub文件被改名成和members指定的用户名一一对应的名字。
多个用户名或项目名之间用空格隔开, 每个组可以包含多个members或writable。

  • 4). 添加组

使用git账号,进入/home/git/repositories/目录
新建目录app.git,在目录中添加一个文件test.txt。

在gitosis.conf文件上添加:
[group app]
members = johnson@Johnson-BBACED test@test.com
writable = app
提交之后,johnson@Johnson-BBACED test@test.com就有了/home/git/repositories/app的读写权限:
git clone git@[remoteserver]:app.git
即可正常操作。

 

转载于:https://www.cnblogs.com/amusal/p/3191219.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值