在使用 git log 列出两个commit 或者两个分支之间的历史时,有些用户对log的范围很疑惑,到底是取哪一段 ?
这里说说明一下
- git log commit-1 : 从开始到这个commit
- git log branch-1 : 从开始到 branch-1 的head
- git log foo bar: 既包含 foo , 又包含bar, 分支和commit 同理
- git log foo..bar 等同于 git log ^foo bar :不包含 foo , 包含 bar
- git log foo...bar 等同于 git log A B --not $(git merge-base --all A B) :包含 foo , 不包含 foo和bar的公共部分
可能还是不太好理解,下面上图,一图胜千言,一看就明白了
git log 是取的范围,这点和git diff 是不同的,git diff 请参见 git diff 没有点、两个点和三个点的区别