当我们做项目时,总要有一个地方存放源码吧,因为我们是多人协作,就算是一人协作也是需要的。

有时候我们可能需要使用github放源码,但是它的私有仓库是收费的。

那就使用不收费的,比如coding,bitbucket。

或者自己使用gitlab自己搭建一个类似github这样的工具。

但是,总感觉把代码寄放在别人的地方,或者说自己搭起来太麻烦。

是否有更简单的方法呢。

有的。

下面要介绍的方法,是适合团队不大,且不复杂的情况。

如果团队很多人,且权限管理等很复杂,请选择其他方法吧。

2. 使用

既然是在服务器上搭建git服务,那就需要有一台linux的服务器。

第一步:首先安装好git。

$ sudo apt-get install git

第二步:接着创建一个git用户,这个用户很重要,它是来管理git,也是代码的拥有者。

$ sudo adduser git

第三步:使用ssh证书

但凡要下载代码的都是使用git这个用户,但我们又不一定要每次都输入密码,我们使用ssh的证书。

$sudo mkdir /home/git/.ssh$sudo touch /home/git/.ssh/authorized_keys$sudo chown -R git:git /home/git/.ssh

上面做这么多,主要是创建/home/git/.ssh/authorized_keys文件。

如果要下载代码,就把你的公钥上传到authorized_keys文件中,一个一行。

你的公钥地址是~/.ssh/id_rsa.pub。

第四步,创建空仓库。

首先先选一个目录做为放代码的仓库。

比如/home/hfpp2012,我现在在这个目录下:

$sudo git init --bare rails365.gitInitialized empty Git repositoryin/home/hfpp2012/rails365.git/

现在已经建立了一个空的仓库。

$sudo chown -R git:git rails365.git

我们把这个目录的所有者改成git。

第五步:禁用shell登录

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1003:1003:,,,:/home/git:/bin/bash

改为:

git:x:1003:1003:,,,:/home/git:/usr/bin/git-shell

现在整个过程都完成了。

可以来测试一下,把你的源码推送到刚才建好的仓库中。

$ git remote add vps git@server:/home/hfpp2012/rails365.git$git push vps master

当然,server是服务器的ip地址。

如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。