假设我有一个主题分支,我想重写它的整个历史,因为它最初是从 master 为 pull 请求创建的。无论出于何种原因,使用 git log
都不容易或明显确定我要传递给的提交哈希
git rebase -i <commit>
我知道我可以使用 git merge-base <branch1> <branch2 || master>
找到两个引用可以从中追踪其祖先的提交,并可以使用它来确定提交。我想知道的是,是否有比使用
git rebase -i `git merge-base my_branch master`
编辑:我不想更改在此分支上进行的第一次提交的父级,所以 git rebase -i master
仅在分支创建后两个主节点都没有推进并且分支是从当前指向的提交主节点创建的情况下才有效。
最佳答案
也许我误解了你的问题,但我认为 git rebase -i master
应该做你想做的。它将计算出 merge 基础并将整个分支从该点重新设置为当前 HEAD,以便它看起来是从 master 的当前提示分支出来的。
另外,如果 master 还没有升级,那么 rebase 几乎是一个空操作。
关于git - 分支的交互式 rebase 及其与 master 的分歧点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10415837/