2016-10-17 289 views
0
git for-each-ref --sort=committerdate refs/heads/ --format='%(committerdate:short) %(refname:short)' 

上述命令打印按上次提交日期排序的分支。但如何按第一次提交的日期排序? (即分支创建的日期)。列表分支按创建日期排序

+2

的混帐分支创建时,虽然当地的引用日志可能有其创建的条目不跟踪的日期。 Reflogs不会被推送或克隆,因此它们不能通过常用的git命令共享。 – ElpieKay

+0

@ElpieKay可以使用Python或其他语言来迭代树,并找到分支从主分离的位置和时间? – exebook

+1

分支不一定意味着涉及任何拆分。你应该[阅读Git书](https://git-scm.com/book/en/v2)了解哪些分支实际上是什么以及历史如何工作。您可以通过历史阅读合并反转来识别历史中的实际树状分支,但这不会给您一种附加(分支)名称的方式,仅仅是由于分支的工作方式。 – poke

回答

2

这是不可能的,因为Git不记录创建分支的日期/时间。 “reflog”是一个本地唯一的选项,用于“拯救”这类信息,但它只记录分支的提示在本地存储库中更新的时间,它不区分是否在该时刻创建了分支已经存在。

+1

如果您需要这些信息,您可以编写一个别名来同时为分支标记分支点 - 然后记录分支“创建”的时间。但是,如果多人创建具有相同名称的本地分支机构并将它们合并在一起,它将无济于事。 – Useless

1

如上所述,在Git中不可能找到分支的创建日期。

@ElpieKay任何方式来使用Python或其他语言迭代树,并找到分支从主分离的地方和时间?

然而,这可以通过git-merge-base来实现。下面将打印SHA1的承诺这是masterbranch一个共同的祖先:

git merge-base branch master 
+0

'git merge-base'找到最新的共同祖先。新分支创建的提交并不总是最新的。 – ElpieKay