我想做一个像以下分支的交互式狂犬病:
git rebase -i HEAD~4
在IntelliJ IDEA中找不到这样做的方法。如果可能,请提供建议。谢谢。
答案 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对话框HEAD~4
HEAD~4
branch
IntelliJ实际上会强迫你先思考并确定你的范围和目标,这看起来更复杂,但这会阻止你在不了解结果的情况下做一次变基。
答案 1 :(得分:2)