我想对分支进行交互式 rebase ,例如:
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
。如果您不熟悉提交范围,您应该仔细阅读。
让我们看一下您的示例,并假设您在分支“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 的 rebase 对话框- 转到:
HEAD~4
- 来自:
HEAD~4
- 分支:
分支
IntelliJ 实际上会强制您首先思考并确定您的范围和目标,这看起来更复杂,但这会阻止您在不了解结果会是什么的情况下进行 rebase 。
关于git - 如何使用 Intellij IDEA 进行交互式 rebase ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14608812/