有没有办法让 git log 以不同的方式显示(a)HEAD 指向分支指针且分支指针指向提交,以及(b)HEAD 直接指向提交,并且分支指针指向同一个提交的情况?
例如,如果我这样做
git commit -m'My commit'
git log --oneline --graph --decorate
* 655c6f1 (HEAD, master) My commit
所以现在的情况是:655c6f1 <- master <- HEAD. But if I do
git checkout 655c6f1
git log --oneline --graph --decorate
* 655c6f1 (HEAD, master) My commit
所以现在的情况是:655c6f1 <- master, 655c6f1 <- HEAD. (And I am in a detached HEAD state.)
但是在这两种情况下
git log
输出是相同的。如何让 git log 区分这两种情况?
Git 2.4+(2015 年 4 月)确实向您展示了 HEAD 分支和 签出后分离的 HEAD 之间的明显区别。
请参阅
提交 51ff0f2。
C:\Users\vonc\prog\b2d>git log --oneline --graph --decorate -3
* 8956c85 (HEAD -> master, origin/master) apache/(run/kill): runs/kills gnupg2 as well
* 216834a gitolite/run: uses {fgrpath}/.init_envs.sh as a marker
注意
HEAD -> master
C:\Users\vonc\prog\b2d>git log --oneline --graph --decorate -3
* 8956c85 (HEAD, origin/master, master) apache/(run/kill): runs/kills gnupg2 as well
* 216834a gitolite/run: uses {fgrpath}/.init_envs.sh as a marker
甚至
Windows 现在也有 Git 2.4+ 了:PortableGit-2.5.0-64-bit.7z.exe
$(git rev-list -g --all)
添加到您的
log
。即做到
git log --oneline --graph --decorate $(git rev-list -g --all)
。我在
这里找到了它。