我正在试图找出一种防止开发人员用Git推动大师的好方法.我们使用GitHub来托管我们的远程存储库,因此pre-receive钩子不是一个选项.是否可以为开发人员团队轻松实施任何其他解决方案?
作为旁注,我一般不想禁用推力.有时它是必要的邪恶.但是说,推动大师的力量不可能发生.
在我们的产品首次发布之后,我们将切换到主要开发和功能开发的不同分支.有没有一种方法来创建这样一个分支,这样我们就可以防止它被删除(无意或故意的),除非你是一个特定的用户(基于角色或用户名)?
我试图在我们的本地gitlab机器中创建一个示例git存储库,然后从网站上的选项中保护其中一个分支,但后来我能够将其删除git push origin :branch_name.提前致谢!
该解决方案是否适用于github.com?
我们的GitHub存储库存在问题.我将解释我们的工作流程:
开发人员从主线分支创建功能/错误修复分支.他们拉取请求他们的更改以将其合并回来.他们可能会从主线分支重新定义,以便在它们工作时从中获取最新更新.在一次重组后,他们推动 - 强制他们的功能分支.
最近使用GitHub Web界面自动合并了两个拉取请求.随后 - 在请求合并后大约两天 - 发现这些提交中的更改不在代码中.历史上没有任何内容表明这些变化被还原或覆盖.合并本身不会出现在提交历史记录中,并且单独的提交本身也不会出现.但拉取请求已成功合并.其中一个遗失的提交不再适用于樱桃选择.当我们尝试时,我们得到一个致命的 - 坏对象消息.
我们怀疑是否发生过一些历史改写.我们如何才能发现以及如何防止这种情况发生.我们的工作流程是否存在根本性问题?