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

我想获取一个Git存储库中所有分支的列表,顶部是“最新鲜”的分支,其中“最新鲜”的分支是最近提交的分支(因此,更有可能成为一个分支)。我要注意)。

有没有一种方法可以使用Git来(a)按照最新提交对分支列表进行排序,或者(b)以某种机器可读的格式获取分支列表以及每个成员的上次提交日期?

最坏的情况是,我总是可以运行git branch以获取所有分支的列表,解析其输出,然后git log -n 1 branchname --format=format:%ci为每个分支获取每个分支的提交日期。但这将在Windows机器上运行,在Windows机器上启动新进程的成本相对较高,因此,如果有很多分支,则每个分支一次启动Git可执行文件可能会变慢。有没有办法用一个命令来完成所有这些工作?


饮歌长啸
浏览 1832回答 3
3回答

慕斯王

使用--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  # DESCgit 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))'

神不在的星期二

git分支名称列表,按最新提交顺序排序…扩展Jakub的答案和Joe的技巧,以下内容将去除“ refs / heads /”,因此输出仅显示分支名称:命令:git for-each-ref --count=30 --sort=-committerdate refs/heads/ --format='%(refname:short)'结果:
打开App,查看更多内容
随时随地看视频慕课网APP