我们在裸存储库中使用带有三个主要分支 Development、Test 和 Master 的 Git。
我们有许多开发环境都有 git 存储库。每个人都创建了开发分支并在该分支上工作并将他们的代码推送到裸存储库中的开发分支。
同时我们希望限制开发人员将他们的代码从他们的开发分支推送到测试和主分支。
有没有办法通过使用密码来保护裸存储库分支。
我们在裸存储库中使用带有三个主要分支 Development、Test 和 Master 的 Git。
我们有许多开发环境都有 git 存储库。每个人都创建了开发分支并在该分支上工作并将他们的代码推送到裸存储库中的开发分支。
同时我们希望限制开发人员将他们的代码从他们的开发分支推送到测试和主分支。
有没有办法通过使用密码来保护裸存储库分支。
如果您使用 linux 来托管存储库,我强烈建议您使用gitolite 。
Gitolite 允许您为每个用户或用户组指定他们可以推送到哪些分支等等。
Gitolite 在要托管多个 git 存储库的任何服务器中都很有用,每个存储库都有许多开发人员,其中“任何人都可以对任何 repo 做任何事情”不是一个好主意。这里举两个例子来说明。
它使用 ssh 密钥来识别用户,并据此决定允许或不允许什么。
或者您更改为基于分布式拉取的方法:
他们没有为每个团队设立一个分支,而是拥有自己的存储库;可以对那里的所有内容进行写访问。
除了只读的主分支之外,还有一个主存储库,只有选定的一组维护者才具有写入权限。每当您希望将开发存储库中的某些内容合并到主存储库中时,他们都必须通知维护人员并让他们这样做。
我还建议使用 gitolite 或 Gitosis 轻松管理存储库(我自己只使用过 Gitosis,设置和维护起来很容易)。
您不能使用“仅 git”对特定分支进行密码保护。这是所有权限,或者没有。
正如 Ikke 所说,您可以使用 gitolite,它非常适合处理权限。
另一种更“手工”的方法是在远程裸存储库中使用预接收挂钩(挂钩/后接收)来询问密码。
您可以使用简单的 shell 脚本或使用任何您想要的语言来做到这一点。