我想在我们的一台服务器上设置一个可供某些用户访问的 git 存储库。我们使用 Stash 作为 git 主机,只有拥有 Stash 密钥的用户才能推送。我希望将我们的本地代码放在盒子上每个人都可以访问的位置(/data/repo),并允许授权用户进行更改并将它们作为他们自己(而不是作为服务帐户)推送回 Stash。如何在公共仓库中拥有特定于用户的 git 设置?
问问题
315 次
1 回答
1
我们使用此设置是因为 git 存储库中的代码已上传到我们的 Chef 服务器。我们的运维人员将使用这个共享的 repo 从我们的 git repo 的 master 分支中提取版本,然后将它们上传到 Chef 服务器。他们担心一个操作用户更改文件并将其上传到厨师而不将其提交给 git 的情况。当另一个 ops 用户从 master 拉取并上传到 chef 时,这些更改可能会丢失(chef 服务器根本不处理冲突)。为避免这种情况,它们都将在同一个目录中工作,因此在这种情况下,任何更改都会被 git 标记为冲突。
我已经弄清楚这是如何完成的。
回购设置:
<git clone command, creates folder 'repo'>
chmod -R g+rw repo
chmod g+s `find repo -type d
cd repo
git config core.sharedRepository true
这些设置将 repo 标记为共享,并将 repo 中创建的任何新内容设置为属于用户组。
用户设置:
cd ~
git config --global user.name <name>
git config --global user.email <email>
--global 标志创建 ~/.gitconfig。多个用户可以在共享存储库中工作,任何 git 命令都将引用此文件。我已经用 2 个用户对此进行了测试。任何修改的内容对所有人都是可见的。提交可以由每个用户签名,并且当有人推送所有提交的更改时,他们的作者信息会保持不变。
于 2014-04-09T13:02:47.287 回答