Git:列出git分支,按日期排序(并显示)

72

我怎样才能按它们最后提交日期展示并排序git分支?

我找到了这个

for k in `git branch | sed s/^..//`; do
    echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k"`\\t"$k";
done | sort -r

我期望普通的Git有这个功能。它有吗?

我还找到了git show-branch --date-order,但输出结果与此不同。


如果它比另一个更早,怎么可能是重复的? - Ondra Žižka
这怎么可能更旧呢?因为这个问题是在2012年提出的,而另一个问题是在2011年提出的。 - Joe White
好的,我错了。我看错了2014年的编辑。谢谢和道歉。 - Ondra Žižka
2个回答

136

这似乎是一种内置的方法来实现这个功能(v1.7.4):

git for-each-ref --sort=committerdate refs/heads/ --format='%(committerdate:short) %(refname:short)'

2
git for-each-ref 在1.4.4版本中被添加。 - jthill
1
我找不到远程分支的类似物。 - Ry4an Brase
7
请使用refs/remotes/代替refs/heads/。该指令的含义不变,但需要注意在使用过程中的细微差别。 - SQB
1
在Windows命令提示符中,似乎需要将'更改为" - Rikki Gibson
对于远程分支,相同的语法适用:git branch -r --sort=-committerdate --format='%(committerdate:short) %(refname:short)' - Code Abominator
将排序方式从早到晚改为从晚到早如何? - edjm

33

我很喜欢@Will Sheppard提出的为某些内容添加颜色的解决方案。

git for-each-ref --sort=committerdate refs/heads/ --format='%(color: red)%(committerdate:short) %(color: cyan)%(refname:short)'

@will的方法很好,但是你的方法似乎在我的git 183分支(git-1.8.3.1-13.el7)上出了问题。如果可以的话,请检查一下?致命错误:未知字段名称:color: red - user2066657
可以在 Git Bash 中工作,但在某些 IDE(如 VSCode)中运行会导致致命错误。 - nilakantha singh deo
无法在Windows上运行。 - ΩmegaMan
1
如果你将 ' 替换为 ",它就可以在 Windows 上运行。 - bwmartens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接