ls -1 --sort=time .git/refs/heads/ | while read b; do PAGER='' git log -n1 --color --pretty=format:'%C(yellow)%d%Creset - %Cred%h%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --abbrev-commit $b --; done;
此oneliner打印按時間排序的所有本地分行從最新到最舊。每個分支都有最後一次提交可讀的日期字符串。您可以將其添加到您的.gitconfig
。
對於遠程分支我想出了這個令人毛骨悚然的解決方案:
git ls-remote -h origin | while read b; do PAGER='' git log -n1 --color --pretty=format:'%ct%C(yellow)%d%Creset - %Cred%h%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --abbrev-commit $(echo $b | cut -d' ' -f1) --; done | sort -rn -k1,10 | cut -c11-
編輯:我越覺得,更多的恐怕這可能是不可靠的,因爲ls-remote
始終連接到遠程端,而log
不。在每次運行此命令之前,可能需要執行fetch
。
可能的重複[如何獲得git分支列表,由最近的提交排序?](http://stackoverflow.com/questions/5188320/how-can-i-get-a-list-of -git-branches-ordered-most-recent-commit) – sleske
剛剛意識到這是重複的。 – sleske