本文提供的方法适用于小团队在局域网内通过git协同编码。

一. 基本步骤

第1步:安装 Linux,安装 Git

此处省略具体操作步骤。

第2步:创建 git 用户

在 Linux 系统内以管理员权限执行如下命令:

adduser git

此命令执行过程中会提示输入新账户的 登录密码

,同时自动创建用户主目录 /home/git

,以及执行其他必要的工作。

该用户不一定非叫git,任意合法名称都行,例如 liigogit 等等,当然后续操作命令也要相应地修改。

第3步:创建 git 仓库

使用 git 用户登录系统,在用户主目录 /home/git

内执行如下命令:

git init --bare myrepo.git

该仓库本地目录是 /home/git/myrepo.git

,或者 ~/myrepo.git

,这个毫无疑问。

该仓库 远程目录

是 git@192.168.0.2:/home/git/myrepo.git

,或者是 git@192.168.0.2:~/myrepo.git

。注意其中包含了用户名、IP地址、本地目录等信息;注意符号 @

和 :

都是必不可少的。

本文后面提供其他方法创建仓库,使得远程目录更简洁一点。

第4步:客户端克隆 git 仓库

Git客户端可通过如下命令克隆仓库:

git clone git@192.168.0.2:~/myrepo.git

用户名git已经包含在仓库远程目录内,用户密码就是在第2步创建git用户时设定的那个密码。克隆仓库需要输入密码。

第5步:客户端推送 git 仓库

执行 git push

命令时要求输入密码,就是第2步创建git用户时设定的那个密码。

本方法需要向团队所有成员公开git用户的密码。对小团队而言也无所谓,况且该git用户除了提交仓库也没有其他权限,基本不影响局域网 服务器 安全。大团队要慎重。

本方法要求每次推送仓库时都输入密码,操作上比较麻烦。

可考虑将团队各成员的公钥写入文件 /home/git/.ssh/authorized_keys

,这样就不需要公开git用户的密码,也不用每次推送都输密码了。(还没研究过,本文暂不涉及此内容。)

团队所有成员共用一个git用户提交代码,还能分清代码是谁写的吗?当然能。Git客户端推送时携带了代码作者的姓名和邮件地址,都能完整的体现在 git log

里面,这个无需担心。

网上有方法禁止git用户登录SSH。我认为这一步是可选的。

二. 更简短的仓库URL

在Linux系统内以管理员权限执行以下命令:

git init --bare /myrepo.git

chown -R git:git /myrepo.git

如此创建的git仓库本地目录为 /myrepo.git

,远程目录为 git@192.168.0.2:/myrepo.git

.

当然还可以省掉仓库后缀 .git

,远程目录变成 git@192.168.0.2:/myrepo