硬复位后Git合并

时间:2014-12-20 05:07:57

标签: git

这是序列

  1. 合并了从master到dev的更改
  2. 致力于开发,进行一些更改
  3. Checkout master,对HEAD~1进行了硬重置
  4. 检查了dev,试图合并主人
  5. 什么都没发生
  6. 如何将重置主分支的更改带入dev?

1 个答案:

答案 0 :(得分:2)

解决这个问题的一个简单方法是找到你在master中删除的dev并运行git revert REF,其中REF是hash / branch / tag / etc.你删除的提交(git log应该派上用场找到你想要的提交)。这将在dev上创建一个新的提交,它将撤消您要删除的提交中所做的更改。也可以在dev分支中围绕此提交进行rebase(并且可能是硬重置),但这可能会导致修改现有提交的其他问题。 git更喜欢你创建新的提交来改变或撤消旧的提交,而不是破坏性地修改或删除现有的提交。

在您尝试的内容中发生的事情是,当您在步骤4中将master合并到dev时,git只会查找master中不属于dev的提交。因为您对master进行了硬重置,所以此更改不会表示为提交,因此此更改不会合并到dev中。

请注意,如果您计划将修改转移到多个分支(并且不要强行推送),那么硬重置通常会使分支更加复杂。