2017-01-26 74 views
1

请参考下图:如何安全删除已经从分支中删除的主文件?

my-branch  A---B---C---D 
      / \ 
master  E---F---G 

在合并从BG我无意中添加的文件到master,我使用git rmmy-branch删除在D。不幸的是,我在C工作,这还没有准备好与主人合并。我可以安全git rmmaster中的文件,并仍然合并my-branch(文件已被删除)到master以后?

换句话说,通过合并BG,我添加了文件给主人在提交G,我不想。这些文件是'd从my-branchD,但我不想合并D到主,因为C包含尚未就绪的更改。最好的方法是什么?

回答

2

如果D提交只包含rm'ed文件,那么我会在C提交之前移动它,然后将它合并到master中。

在这种情况下,这将是git rebase -i HEAD~2然后重新排序提交把d C.之前,您可以然后合并成d主与

A---B---D---C / \ E---F---G---H

结束如果d有其他的变化,那么你应该重做提交,以便它只包含rm'ed文件,然后重新排序它们。

如果您已经发布my-branch,那么任何牵扯它的人都会以包含CD的现有更改的合并结束。在这种情况下,我会选择D到master,以便在合并my-branch之前删除文件,然后在合并到master时处理一个微不足道的合并冲突。国际海事组织(IMO)最好先处理一下冲突,而不是现在其他人处理冲突。

+0

那么...如果我通过提交'D'发布了'my-branch'会怎么样?这是否会通过重写历史记录来引起任何头痛?编辑:也许它会好起来的,因为D只包含rm'ed文件... – scherm

+0

编辑我的答案为这种情况。如果其他人拥有该分支,那么最终会为他们创建奇怪的合并。 –

0

如果您对使用交互式底图不熟悉或不舒服,您可以在提交G创建分支并选择D.然后将您的分支合并到主控中。

相关问题