防止他人强制推送到我的Git仓库

3

有没有办法阻止除我之外的任何人强制推送到我的Git仓库(具体来说,是Github)?

据我了解,受保护的分支可以完全防止强制推送,但只要是我自己在操作,我就没问题。


如果你能让协作者安装一个预推挂钩,这就可以实现。 - user1440897
只要有其他人使用你的分支(读或写),你的强制推送会导致他们无法再拉取,而需要每次更改时都进行克隆。所以我不认为这里有用例。也许如果你添加一些更多的上下文会有帮助。 - Simon Warta
一位同事从我的代码库中获取了一个名为X的分支,修复了一个bug,然后出于某种原因交互式地重新设置了该分支,并将其强制推送回我的代码库。与此同时,在它被重新设置之前,我有一些其他基于X的分支,因此现在这些分支存在合并冲突。我可以接受能够强制推送到自己的代码库,因为我知道什么与什么相连(而且我经常使用git commit --amend),但我希望其他人在搞乱它之前先问我。 - jay
1个回答

4

每当GitHub存储库存在保护问题时,最可靠的执行方法是拥有两个存储库。

  • 一个存储库只有您是合作者(可以进行强制推送)
  • 另一个存储库分支,合作者仍然可以进行强制推送,但必须将其PR(拉取请求)分支重新基于您的分支,以提交其拉取请求。
    他们会使用三角工作流程

https://cloud.githubusercontent.com/assets/1319791/8943755/5dcdcae4-354a-11e5-9f82-915914fad4f7.png

那样的话,您可以控制哪些内容进入您的代码库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接