如何在GIT中恢复错误的修复?

时间:2012-07-12 04:39:58

标签: git

我确信那里有很多GIT用户有这个问题:

  1. 从master创建分支。我们称之为 featureX
  2. 在某处,在处理 featureX 时,您意识到要对先前的提交进行修复:
    • 你提交修复。
    • 你做你的rebase和壁球/修补。
  3. 稍后您想要反对您的主人,将最新的更改合并到 featureX
  4. 事情因为你的分支已经分歧而破裂(修复不是在master中完成的)。你今天过得很糟。
  5. 这是第二次发生在我身上。第一次,我在 featureX 中没有太多的历史,只是简单地从主人那里做了一个新的分支。 您对此有何看法?你会如何解决这个问题? git reset某个reflog是否可能?在这种情况下,我可以撤消rebase并将修复提交移回 featureX (使用交互式rebase)。

    我确信有不同的方法,但我想这是一个常见的问题。

1 个答案:

答案 0 :(得分:1)

是的,您可以将任何分支重置为之前签出的任何分支(reflog)。因为你的fixup仍然在FeatureX中,所以rebase的行为与你不进行修复时的行为没什么不同 - 只有当master的分歧与featureX分支中的任何提交冲突时才有意义 - 修复与否。

其次,当人们第一次学习git时,爱上了变相的可怕性。但我已经回去合并了。它更简单,它标志着历史的发生,它强迫一些纪律。这是我的工作流程:http://dymitruk.com/blog/2012/02/05/branch-per-feature/