【发布时间】:2018-10-17 05:02:46
【问题描述】:
假设我们有:
C1--C2--C3--C6--C7 <- topic, HEAD
\ \ /
\ C4--C5
\
C8--C9 <- master
(我们添加了一个空的file1 并提交给C1,添加了一个空的file2 并提交给C2,等等)。
然后我们这样做:
$ git rebase master
结果是:
C1--C8--C9 <- master
\
C4'--C2'--C5'--C3'--C7' <- topic, HEAD
我已经创建了一个自动 bash 脚本here,如果你愿意,可以测试它。
据我从 chapter 3.6 in git-scm.com book 了解到,Git 跳过了合并后的结果 C6,因此此处未显示 C6'。
我的问题是,Git 使用哪个命令从 topic 分支中挑选?为什么结果是...-C4'--C2'--C5'--C3'--C7' 而不是...-C2'--C3'--C4'--C5'--C7'(按时间顺序)?
【问题讨论】:
-
您可以尝试使用 git rebase --preserve-merge master 吗? (stackoverflow.com/a/50555740/6309)
标签: git git-rebase