我有一个名为production的远程分支,最近我通过与一些bug分支合并来搞砸了它。之后,我删除了分支并重新创建。但是现在当任何人在他们的分支中本地合并该分支时,那个有缺陷的代码也会出现在那个分支中,因为他们可能在他们的本地系统上有这个错误的生产分支。
我们可以在本地删除分支,但很难让每个用户删除它,有什么方法可以阻止那个旧的bug生产分支代码?有没有办法让每个用户在使用它进行合并之前在本地删除该分支?
答案 0 :(得分:3)
你不能。
实际上在"Recovering from upstream rebase" section of the git-rebase(1)
manual page部分解释了这一点。
你应该这样做:
请所有人去git fetch
。
此操作将重写与您在每个人的本地存储库中替换的远程分支匹配。
要求开发人员验证他们没有在任何地方合并此分支。
这可以通过运行
来实现git branch --contains origin/messed_up_branch
此命令不应输出任何内容。
如果有人将该分支合并,则必须修复包含此类合并的本地分支。假设通过git rebase -i
或在合并点之前分离临时分支,与新分支合并,然后挑选原始分支原始合并后提交的提交。