为了账号安全,请及时绑定邮箱和手机立即绑定

如何获得按最近提交顺序排序的Git分支列表?

如何获得按最近提交顺序排序的Git分支列表?

Git
饮歌长啸 2019-09-27 16:15:25
我想获取一个Git存储库中所有分支的列表,顶部是“最新鲜”的分支,其中“最新鲜”的分支是最近提交的分支(因此,更有可能成为一个分支)。我要注意)。有没有一种方法可以使用Git来(a)按照最新提交对分支列表进行排序,或者(b)以某种机器可读的格式获取分支列表以及每个成员的上次提交日期?最坏的情况是,我总是可以运行git branch以获取所有分支的列表,解析其输出,然后git log -n 1 branchname --format=format:%ci为每个分支获取每个分支的提交日期。但这将在Windows机器上运行,在Windows机器上启动新进程的成本相对较高,因此,如果有很多分支,则每个分支一次启动Git可执行文件可能会变慢。有没有办法用一个命令来完成所有这些工作?
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

使用--sort=-committerdate选项git for-each-ref;


从Git 2.7.0开始也可用于git branch:


基本用法:

git for-each-ref --sort=-committerdate refs/heads/


# Or using git branch (since version 2.7.0)

git branch --sort=-committerdate  # DESC

git branch --sort=committerdate  # ASC

高级用法:

git for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'


查看完整回答
反对 回复 2019-09-27
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

git分支名称列表,按最新提交顺序排序…

扩展Jakub的答案和Joe的技巧,以下内容将去除“ refs / heads /”,因此输出仅显示分支名称:


命令:

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

结果:

//img1.sycdn.imooc.com//5d8dc5440001849014800348.jpg

查看完整回答
反对 回复 2019-09-27
  • 3 回答
  • 0 关注
  • 1774 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信