2016-10-17 2729 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