git - 分支的交互式 rebase 及其与 master 的分歧点

标签 git rebase

假设我有一个主题分支,我想重写它的整个历史,因为它最初是从 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/

相关文章:

Git global core.fileMode false 在克隆上本地覆盖

git - 如何根据每次提交的日期将两个分支 merge 为一个分支?

git - 如何将默认命令更改为 git rebase 中的所有提交?

git - 什么是 .git.dmp 文件,我该如何使用它?

git pull --rebase upstream & git push origin 拒绝非快进?

svn重新设定基准并丢失历史记录

git - 将 .gitattributes 文件中的 merge 规则应用于 git rebase 调用

git - 避免在 git 中 merge 提交

linux - git 使用什么机制来查找其存储库?

Git——维护多个版本