1. 安装git-core
在ubuntu下可以直接输入命令
>>sudo apt-get install git-core
来安装。但是由于ubuntu中文网站不稳定,经常不能访问,所以对于不能访问的用户可以选择在github上下载源码进行安装,地址为https://github.com/res0nat0r/gitosis ,下载完以后直接安装:
>>python setup.py install
安装过程中有可能会出错,少了setuptools,你可以在https://pypi.python.org/pypi/setuptools上下载setuptools并安装。
2. 安装ssh
大部分用户在装系统的过程中都会安装ssh,或者装完系统以后自己也会安装,网上也有很多安装ssh的教程。这里掠过
3. 为gitosis创建系统用户
>>sudo adduser --system --shell /bin/sh --gecos 'git SCM user' --group --disabled-password --home /home/git git
网上很多教程推荐这个命令来创建一个无需密码的系统git用户,但是无密码的git用户,当你用su切换过去的时候会授权失败,所以最好还是自己加上密码。
>>sudo passwd git
使用以上命令为git用户添加密码
4. 创建git仓库
创建一个路径,存放所有的git仓库,可以放在/home/git目录下,也可以指定其他路径例如/va/local/git.我们将该路径命令为gitroot,一下的gitroot即是你指定的这个路径。
使用下面的命令创建一个新的空的git仓库:
>>git init --bare mynewgit.git
将该仓库中所有文件的全下修改为777,文章的后面会说明为什么要修改为777.
>>cd mynewgit.git
设置提交的email通知。
>>echo 'One-line project description'
>description
>>
git config --
local
hooks.mailinglist email-a@example.com,email-b@example.com,...
>>git config --
local
hooks.emailprefix
'[DI-PR] '
>>
git config --
local
hooks.showrev
"git show -C %s; echo"
>>
git config --
local
hooks.emailmaxlines 100
>>cd hooks
>>cp post-receive.sample post-receive
>>chmod 777 post-receive
5. 远程访问
看到很多介绍添加用户的方法,需要提供公/私钥对来访问,这种访问的安全性比较高,但是比较麻烦。如果对于一些小的局域网内部的开发,没有必要,只需要在服务器上创建一个与访问服务器的计算机用户相同的用户即可。假如你的计算机用户名为:myusername,那么在ubuntu服务器上创建一个相同的用户名:
>>sudo useradd myusername -p /home/git
然后为该用户添加密码:
>>sudo passwd myusername
至此就可以在客户端以myusername来访问git server了,这也是之前为什么要将git仓库修改权限为777的原因。当然这样是为了方便,你也可以不修改为777而修改为770,但是需要将myusername修改为与gitroot目录的创建者为一个用户组。
6. 客户端访问并修改git server
>>git clone IP:/gitroot/mynewgit.git
>>echo "This is a Readme file" > README.txt
>>git add README.txt
>>git commit -m "add readme"
>>git push origin master