我使用git log,但我发现它只能列出当前分支下的日志,但是我想列出所有分支的所有分支并按修改日期排序,这可能吗?怎么做?提前谢谢!
答案 0 :(得分:3)
您可以查看this question,看看这是否开始解决您的日志级别问题:
git log --graph --abbrev-commit --pretty=decorate --branches
它应列出所有分支,包括遥控器(如果已取出)
--branches[=pattern]
假装refs / heads中的所有引用都在命令行中列为
<commit>
。
如果给出了pattern,则将分支限制为与给定shell glob匹配的分支 如果模式最后缺少?, , or [, /
则暗示。
您可以使用 尝试此commandline-fu:git branch
或git branch -a
( 当然是你想要看到与 gitk 相同的分支所需要的)git branch -a
for k in `git branch -a|perl -pe s/^..//`;do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset%cn: %s" $k|head -n 1`\\t$k;done|sort -r
或:
for k in `git branch -a|sed s/^..//`;do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset%cn: %s" "$k"`\\t"$k";done|sort
(您可以complete the format显示任何数据 - 作者,提交消息,...... - 您需要)
按日期显示git分支 - 对于显示活动分支很有用 将具有上次提交日期的所有分支的列表打印到分支,包括自提交和颜色编码以来的相对时间。
注意:正如Jakub Narębski恰当地评论:
不要使用
git branch
输出来编写脚本!使用git for-each-ref
或git show-ref
管道(用于编写脚本的低级命令)
git branch
是一个瓷器命令,正是因为它意味着用户,而不是脚本。
正如Eric Raymond所说,它符合完善的git设计理念,即将内容操作(管道)与表示(瓷器)分开。
答案 1 :(得分:1)
git log --all