如何最简便的搭建Git服务?
假设你有个绑定域名为git.gitfaq.cn
的服务器,并且可以通过SSH登录,计划将所有仓库(repository)放到/data/git
目录中。
建立仓库(repository) #
本地新建仓库(repository)
mkdir repo.git
git init
将仓库(repository)上传到服务器中。
scp -r repo.git [email protected]:/data/git
成功后,即可通过[email protected]:/data/git/repo.git
来访问远端仓库。
访问仓库(repository) #
建立好仓库后,拥有SSH权限的user就可以对[email protected]:/data/git/repo.git
拥有操作权限。
还可以通过git init --shared
设置仓库目录的组权限为可写,此命令不会影响任何提交、引用等内容。
ssh [email protected]
cd /data/git/repo.git
git init --bare --shared
如果需要多个用户都对仓库有读写权限,又不能给每个用户在服务器上建立账户,那么提供 SSH 连接就是唯一的选择。 假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。
以下几个方法可以使你给团队每个成员提供访问权:
- 给每个人创建账号,为每个人运行一次
adduser
(或者useradd
)并且设置密码。 - 在主机上建立一个
git
公用账户,每个需要权限的人发一个 SSH 公钥, 然后将其加入git
账户的~/.ssh/authorized_keys
文件。 这样一来,所有人都将通过git
账户访问主机。 - 让 SSH 服务器通过某个 LDAP 服务,或者其他已经设定好的集中授权机制,来进行授权。 只要每个用户可以获得主机的 shell 访问权限,任何 SSH 授权机制你都可视为是有效的。