我想做一个分支的交互式变基,例如:
git rebase -i HEAD~4
在 IntelliJ IDEA 中找不到这样做的方法。如果这可能的话,请提出建议。谢谢你。
我想做一个分支的交互式变基,例如:
git rebase -i HEAD~4
在 IntelliJ IDEA 中找不到这样做的方法。如果这可能的话,请提出建议。谢谢你。
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。