Git 是目前比较流行的版本控制系统,以效率高、分布式、分支管理灵活等特点称著。如果多人想通过 Git 组织开发项目,则最好有一个能在互联网上长期而直接访问的仓库。如果这个项目是开源的,那么使用 Github 和 Google Code 等源码托管商作为仓库是最好的选择,不过对于私有项目或者商业项目,使用它们托管因为需要付款,倒不如自己买个VPS然后自己搭建 Git 仓库来得方便和实惠。
下面简单讲述在服务器搭建 Git 仓库的过程。
安装 Git 程序Git 是分布式的,即程序不区分服务端和客户端,大部分 Linux 发行版的官方源里都有它,比如在 Archlinux 里安装 Git:
$ sudo pacman -S git
不过有些发行版却是没有的,比如 CentOS,需要添加 EPEL 源才有,不过即使使用 EPEL 源,里面的版本也与当前主流的版本相差一大截,这时最好的方法是通过源代码安装。下面是在 CentOS 5 添加 EPEL 和安装 Git 的命令。
$ sudo rpm -Uvh http://download.Fedora.RedHat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm $ sudo yum install git
创建 Git 源码仓库为了简化起见,可以采用如下方法创建 Git 仓库:
1、创建一个专用用户。
2、在这个用户的 home 目录下面创建 Git 空白仓库。
3、把所有开发者计算机的 SSH key 添加到这个用户的 ~/.ssh/authorized_keys 文件当中,这样这些开发者就有读写 Git 仓库的权限,而其他用户没有任何权限。
下面演示这个过程:
$ sudo useradd git #创建一个名字为git的用户 $ sudo passwd git #更改该用户的密码 $ su - git #切换到该帐号 $ mkdir project1.git #创建一个项目源码仓库目录 $ cd project1.git $ git --bare init #初始化一个空白仓库
下面是在开发者计算机上执行的:
$ ssh-keygen # 生成 ssh key $ ssh-copy-id git@myhost # 将上一步生成的 ssh pub key id 复制到服务器上。
开发者使用 Git 访问这个仓库时,实际上是通过 SSH 来传输文件的,所以这个仓库的地址跟 SSH 定位远程文件是一样的,比如访问 project1.git 的地址是:
git@myhost:project1.git
那么克隆此仓库的命令为:
git clone git@myhost:project1.git
如果 project1.git 位于 ~git/repositories/project1.git,则上面的地址相应改为
git@myhost:repositories/project1.git
剩下的 Git 命令不在此文范围,大家可以参阅相关的书籍资料。