我想得到一个Git存储库中所有分支的列表,顶部有"最新鲜"的分支,其中"最新鲜"的分支是最近提交的分支(因此,更可能是一个分支)我想要注意).
有没有办法可以使用Git(a)通过最新提交对分支列表进行排序,或者(b)以某种机器可读格式获取分支列表以及每个分支的最后提交日期?
最糟糕的情况是,我总是可以运行git branch以获取所有分支的列表,解析其输出,然后git log -n 1 branchname --format=format:%ci为每个分支获取每个分支的提交日期.但这将在Windows机器上运行,其中启动一个新进程相对昂贵,因此如果有很多分支,每个分支启动Git可执行文件可能会变慢.有没有办法用一个命令完成所有这些?
我已经查看了git-scm.com和gitref.org的相关文档,但我似乎无法弄清楚这一点.
假设我希望获得2013年11月12日星期二的所有提交.以现有的repo为例,我知道我当天有提交,以及前一天和后一天的提交.
2013-11-11和2013-11-12以下所有内容都给了我11月11日和12日的承诺:
git log --after="2013-11-11" --until="2013-11-12"git log --since="2013-11-11" --until="2013-11-12"git log --after="2013-11-11" --before="2013-11-12"git log --since="2013-11-11" --before="2013-11-12"2013-11-12只以下所有内容均未给出任何提交:
git log --since="2013-11-12" --until="2013-11-12" git log --since="2013-11-12" --before="2013-11-12"git log --after="2013-11-12" --until="2013-11-12"git log --after="2013-11-12" --before="2013-11-12" 2013-11-12和2013-11-13正如预期的那样(从结果2013-11-11及2013-11-12以上),所有来自11月12日和13日以下的给我的结果:
git log --since="2013-11-12" --before="2013-11-13"git log --after="2013-11-12" --before="2013-11-13"git log --since="2013-11-12" --until="2013-11-13"git log --after="2013-11-12" --before="2013-11-13"...等等等等.我觉得我已经尝试过的每一个可能的组合since,after,before和until …