如何使用Intellij IDEA进行交互式变基?

时间:2013-01-30 16:25:23

标签: git intellij-idea

我想做一个像以下分支的交互式狂犬病:

git rebase -i HEAD~4

在IntelliJ IDEA中找不到这样做的方法。如果可能,请提供建议。谢谢。

2 个答案:

答案 0 :(得分:14)

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

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

其中IntelliJ的“Onto”字段对应--onto newbase,IntelliJ的“From”字段对应“upstream”,IntelliJ的“Branch”字段对应“branch”。

在上面的git rebase命令中,所有参数都是可选的,而在IntelliJ中则不是。这意味着您必须使用git rebase命令并使用上面显示的常规表单表达它。

请注意,您实际使用rebase命令的参数执行的操作是定义将在新目标位置重播的一系列提交。通常,范围是upstream..branch。如果您不熟悉提交范围,则应阅读它们。

让我们看看你的例子并假设你在分支“分支”上:

git rebase -i HEAD~4

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

这会产生:

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

现在您可以使用

填写IntelliJ的rebase对话框
  • Onto:HEAD~4
  • 来自:HEAD~4
  • 分支:branch

IntelliJ实际上会强迫你先思考并确定你的范围和目标,这看起来更复杂,但这会阻止你在不了解结果的情况下做一次变基。

答案 1 :(得分:2)

如果您不太熟悉git rebase -i,则可以在Intellij IDEA中使用给定的UI功能。 命令。

打开版本控制标签(View -> Tool windows -> Version Control或使用Alt+9) 版本控制工具窗口下的goto日志选项卡。 选择您要开始重新定位的提交 右键单击提交,然后选择选项interactively rebase from here

从显示的对话框中选择要执行的操作并重新设置基准:) enter image description here