命令行fu http://www.commandlinefu.com/commands/view/2345/show-git-branches-by-date-useful-for-showing-active-branches有两个有趣的提议:
for k in $(git branch | perl -pe s/^..//); do echo -e $(git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1)\\t$k; done | sort -r
or:
for k in $(git branch | sed s/^..//); do echo -e $(git log --color=always -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k --)\\t"$k";done | sort
这是针对本地分支的,采用 Unix 语法。使用git branch -r
,您可以类似地显示远程分支:
for k in $(git branch -r | perl -pe 's/^..(.*?)( ->.*)?$/\1/'); do echo -e $(git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1)\\t$k; done | sort -r
迈克尔·福雷斯特 https://stackoverflow.com/users/191991/michael-forrest提及在评论中 https://stackoverflow.com/questions/2514172/listing-each-branch-and-its-last-revisions-date-in-git/2514279#comment27884192_2514279zsh 需要转义sed
表达:
for k in git branch | perl -pe s\/\^\.\.\/\/; do echo -e git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1\\t$k; done | sort -r
连续性 https://stackoverflow.com/users/1025068/kontinuity adds 在评论中 https://stackoverflow.com/questions/2514172/listing-each-branch-and-its-last-revisions-date-in-git/2514279#comment65532526_2514279:
如果您想将其添加到您的 zshrc 中,则需要以下转义。
alias gbage='for k in $(git branch -r | perl -pe '\''s/^..(.*?)( ->.*)?$/\1/'\''); do echo -e $(git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1)\\t$k; done | sort -r'
在多行中:
alias gbage='for k in $(git branch -r | \
perl -pe '\''s/^..(.*?)( ->.*)?$/\1/'\''); \
do echo -e $(git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | \
head -n 1)\\t$k; done | sort -r'
Note: n8tr https://stackoverflow.com/users/1202867/n8tr's answer https://stackoverflow.com/a/23943986/6309, 基于git for-each-ref refs/heads https://git-scm.com/docs/git-for-each-ref更干净。而且更快 https://stackoverflow.com/a/41307509/6309.
也可以看看 ”仅命名选项git branch --list? https://stackoverflow.com/a/36026316/6309"
更普遍,tripleee https://stackoverflow.com/users/874188/tripleee提醒我们在评论中 https://stackoverflow.com/questions/2514172/listing-each-branch-and-its-last-revisions-date-in-git#comment106493431_2514279:
- 更喜欢现代
$(command substitution)
语法优于过时的反引号语法。
(我在 2014 年用“有什么区别$(command) and `command`在 shell 编程中? https://stackoverflow.com/a/24592916/6309")
-
不要读取行for https://mywiki.wooledge.org/DontReadLinesWithFor.
- 可能会切换到
git for-each-ref refs/remote
以机器可读格式获取远程分支名称