如何在git中列出当前项目的所有日志?

时间:2010-06-05 02:58:47

标签: git logging

我使用git log,但我发现它只能列出当前分支下的日志,但是我想列出所有分支的所有分支并按修改日期排序,这可能吗?怎么做?提前谢谢!

2 个答案:

答案 0 :(得分:3)

您可以查看this question,看看这是否开始解决您的日志级别问题:

git log --graph --abbrev-commit --pretty=decorate --branches

它应列出所有分支,包括遥控器(如果已取出)

--branches[=pattern]
  

假装refs / heads中的所有引用都在命令行中列为<commit>
  如果给出了pattern,则将分支限制为与给定shell glob匹配的分支   如果模式最后缺少?, , or [, /则暗示。


您可以使用 git branchgit branch -a 尝试此commandline-fu
git branch -a 当然是你想要看到与 gitk 相同的分支所需要的)

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-refgit show-ref管道(用于编写脚本的低级命令)

git branch是一个瓷器命令,正是因为它意味着用户,而不是脚本。

正如Eric Raymond所说,它符合完善的git设计理念,即将内容操作(管道)与表示(瓷器)分开。

答案 1 :(得分:1)

git log --all