我不太明白如何使用git rebase -i压缩提交。我有一件事想知道:
如果我的rebase -i产生了这个列表:
pick A Last commit
pick B Commit
pick C Some other commit
我应该压缩提交A和B,B和C吗?问题是git在这种情况下说它会将D..A重新映射到D(D是在此之前的最后一次提交)而不是C..A到C上,这对我来说是有意义的。 D根本没有显示,为什么要这样说呢?
答案 0 :(得分:5)
问题是git术语中的D..A
意味着“从D到A不包括D本身”。如果您查看git-rev-list
手册页,您会看到
符号“
<commit1>..<commit2>
”可用作“^<commit1> <commit2>
”的简写
表示“列出<commit2>
中包含的所有提交,但不包括在<commit1>
中。 D
所做的更改它本身包含在D
提交中。因此它不包含在表示为D..A
的列表中。
这就是说git rebase -i D
影响D..HEAD
的原因是正确的。