下面简单讲述在服务器搭建 Git 仓库的过程。
安装 Git 程序
Git 是分布式的,即程序不区分服务端和客户端,大部分 Linux 发行版的官方源里都有它,比如在 Archlinux 里安装 Git:
$ sudo pacman -S git
不过有些发行版却是没有的,比如 CentOS,需要添加 EPEL 源才有,不过即使使用 EPEL 源,里面的版本也与当前主流的版本相差一大截,这时最好的方法是通过源代码安装。下面是在 CentOS 5 添加 EPEL 和安装 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
客户端
git init
echo "first file" >> README
cat README
git add .
git commit -a -m "add README"
git remote add origin ssh://git@123.206.198.46/~/workspace/code_celloct/project1.git
git push origin master
git clone root@123.206.198.46:/home/git/project1.git
如果 project1.git 位于 ~git/repositories/project1.git,则上面的地址相应改为
git@myhost:repositories/project1.git