2

我不太明白提交是如何用 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 根本没有显示,为什么要这样说呢?

4

1 回答 1

5

问题是D..A在 git 术语中的意思是“从 D 到 A,不包括 D 本身”。如果您查看git-rev-list手册页,您会看到

符号“ <commit1>..<commit2>”可以用作“”的^<commit1> <commit2>简写

这意味着“列出所有包含<commit2>中但不包含在中的提交。<commit1>并且自己所做的更改D包含在Dcommit中。因此它不包含在列表中,表示为D..A

这就是为什么说git rebase -i D影响是正确的D..HEAD

于 2010-07-27T09:14:06.057 回答