如何在Intellij IDEA中进行交互式变基?

16

我想对一个分支执行交互式的变基操作,例如:

git rebase -i HEAD~4

我在IntelliJ IDEA中没有找到这样做的方法。如果可能的话,请给予建议。谢谢。


这个帮助文档是否回答了您的问题? - CrazyCoder
2个回答

21

在IntelliJ 12.1中,rebase对话框使用最通用的rebase命令版本:

git rebase [-i] [--onto newbase] [upstream] [branch]

在IntelliJ中,“Onto”字段对应于--onto newbase,“From”字段对应于“upstream”,而“Branch”字段则对应于“branch”。

在上述git rebase命令中,所有参数都是可选的,而在IntelliJ中它们不是。这意味着您必须使用上面显示的一般形式来表达您的git rebase命令。

请注意,实际上使用rebase命令的参数定义了将在新目标位置重播的提交范围。通常,该范围为upstream..branch。如果您不熟悉提交范围,则应阅读有关它们的内容。

让我们看看您的示例并假设您正在“branch”分支上:

git rebase -i HEAD~4

首先让我们确定范围。由于您只有一个参数HEAD~4,这对应于上游,即范围为HEAD~4..branch或者换句话说,在分支“branch”上是HEAD~4..HEAD。现在的问题是你的--onto目标是什么。如果避免使用--onto,那么git会假定您的上游也是您的--onto

这将产生以下结果:

git rebase -i --onto HEAD~4 HEAD~4 branch

现在你可以使用IntelliJ的rebase对话框填写:

  • Onto: HEAD~4
  • From: HEAD~4
  • Branch: branch

实际上,IntelliJ强制你首先思考并确定范围和目标,这看起来更复杂,但可以防止你在不理解结果的情况下进行rebase操作。


7
如果您对git rebase -i 命令不够熟悉,您可以在Intellij IDEA中使用给定的UI功能。
打开版本控制标签(View -> Tool windows -> Version Control 或使用Alt+9),转到版本控制工具窗口下的日志选项卡。选择您想要开始rebase的提交,右键单击该提交并选择选项从此处交互式rebase
从显示的对话框框中选择您想要执行的操作,然后进行rebase :) enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接