如何在我的提交之前插入已删除的提交,并还原那些已删除的提交?

时间:2011-08-04 15:35:23

标签: git

我试图拆分一个大提交,这个提交已经在How can I split up a Git commit buried in history?之后推进了一个较小的提交。现在,我也做了一些其他修改,并放弃了一些无用的修改。

现在我尝试了一个推送请求,但它失败了,因为我在变基期间意外删除了这些提交而不是恢复它们。 git status显示:

$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 15 and 2 different commit(s) each, respectively.
#
nothing to commit (working directory clean)

我已经尝试克隆存储库,恢复该提交并推送它。接下来,我在工作目录中上游了。这不起作用,基本上是应用我的新修改,然后再将所有内容恢复到旧状态。

如何在我的提交之前插入这两个提交(快进?)之后再进行恢复提交?我需要做另一次变革吗?

我的提交看起来像这样:

A - B - C         origin/master
     \
      D - E - F   local working copy

我希望它看起来像这样:

A - B - C - revert_B - D - E - F

1 个答案:

答案 0 :(得分:2)

是的,你只需要另一个rebase。如果master位于F,则执行以下操作:

git checkout -b tmp origin/master
git revert B
git rebase tmp master
git branch -d tmp