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

Eug*_*ene 5 git intellij-idea

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

git rebase -i HEAD~4

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

小智 16

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

git rebase [-i] [--onto newbase] [upstream] [branch]
Run Code Online (Sandbox Code Playgroud)

在IntelliJ的"Onto"字段对应的地方--onto newbase,IntelliJ的"From"字段对应于"upstream",而IntelliJ的"Branch"字段对应于"branch".

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

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

让我们看看你的例子并假设你在分支"分支":

git rebase -i HEAD~4
Run Code Online (Sandbox Code Playgroud)

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

这会产生:

git rebase -i --onto HEAD~4 HEAD~4 branch
Run Code Online (Sandbox Code Playgroud)

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

  • 到: HEAD~4
  • 从: HEAD~4
  • 科: branch

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


小智 5

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

打开版本控制选项卡(View -> Tool windows -> Version Control 或使用Alt+9)转到版本控制工具窗口下的日志选项卡。选择要开始变基的提交,右键单击提交并选择选项interactively rebase from here

从显示的对话框中选择您想要执行的操作并执行 rebase :) 在此处输入图片说明