14

我想做一个分支的交互式变基,例如:

git rebase -i HEAD~4

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

4

2 回答 2

19

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 目标。如果你避免--onto,那么 git 会假设你的上游也是你的--onto.

这产生:

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

现在您可以使用填写 IntelliJ 的变基对话框

  • 上:HEAD~4
  • 从:HEAD~4
  • 分支:branch

IntelliJ 实际上迫使您首先思考并确定您的范围和目标,这看起来更复杂,但这会阻止您在不了解结果的情况下进行 rebase。

于 2013-07-17T10:37:51.140 回答
6

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

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

从显示的对话框中选择您要执行的操作并执行 rebase :) 在此处输入图像描述

于 2019-08-20T07:01:42.727 回答