我有这个:
master
| foo
| |
v v bar
A---B---C---D |
\ v
\---E---F---G
我想要这个:
master
| foo
| |
v v bar
A---B---C---D |
\ v
\---E---F---G
所以我认为我需要这样做:
git checkout bar
git rebase master
但 Git 不这么认为:
Current branch bar is up-to-date.
并让一切保持原样。
我需要运行什么才能让 Git 执行我想要的操作?
最佳答案
您正在执行的 git rebase
版本会获取分支 bar
上尚未在 master
上的所有提交,并且将它们写入master
。这是从 D
到 F
的提交,这不是您想要的,因为它不会跳过提交 D
。一种解决方案是使用 --onto
标志:
git checkout bar
git rebase --onto master foo
此版本的 rebase 将获取分支 bar
上但不在分支 foo
上的所有提交,并将它们重写到 master
上。这将准确地生成您想要的 bar
历史记录。
关于git - `git rebase` 没有更新分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192249/