git rebase --continue和--stepback?

时间:2011-05-02 11:22:59

标签: git

有没有办法在交互式rebase期间退回提交?

3 个答案:

答案 0 :(得分:5)

不,马格努斯说。

然而,

  • git-rerere可以在某种程度上接近你想要的东西:如果你以前的手动冲突解决方案你不想放松,你可以启用rerere(预先录制的冲突解决方案),这样他们就可以在后续合并时以相同方式自动解析。请注意,这意味着您必须记住下次要以不同方式解决的部分(可能是首先进行后退的目标?)因为 - 好吧,rerere假设您想要再次应用相同的分辨率

如果你看一下rebase的实现,你或许可以找出GIT_WORK_TREE / GIT_DIR / GIT_INDEX的替代设置;那么你可以使用plumbing命令和reflog进行rebase-in-progress branch

  • 这会让你深入到无证件的内部(管道之外)
  • 您也可以建议实施--step-back
  • 的rebase补丁

答案 1 :(得分:2)

没有。您可以 - 继续重新定位(例如,在解决了一些冲突之后), - abort(撤消和整个rebase过程)或--skip跳过当前补丁。

答案 2 :(得分:0)

实际上,即使您不进行交互式变基,您也可以。

正如johnb003在评论中提到的那样,在重新定基时,您实际上进行了一系列新的提交。通过执行诸如git log --pretty=oneline --abbrev-commit之类的操作,您可以轻松查看通过重新基准已经完成的所有提交。只需复制其哈希以供以后参考。

然后git rebase --abortgit rebase -i <base_branch>,复制要保留的哈希,如果要修改它们中的任何一个,可以将其更改为edit,然后继续