我發現自己是指各種原因的根提交。我通常創建一個名爲first
或root
,使其更容易的標籤,但我最近一直處理相當多的倉庫,甚至手動標記是已經非常乏味。有一個特殊的名字(如HEAD,FETCH_HEAD)根承諾在一個Git倉庫當前分支?
有沒有簡單的方法來引用根提交,類似於HEAD
或FETCH_HEAD
?
我發現自己是指各種原因的根提交。我通常創建一個名爲first
或root
,使其更容易的標籤,但我最近一直處理相當多的倉庫,甚至手動標記是已經非常乏味。有一個特殊的名字(如HEAD,FETCH_HEAD)根承諾在一個Git倉庫當前分支?
有沒有簡單的方法來引用根提交,類似於HEAD
或FETCH_HEAD
?
我只看到標註的是第一次提交有關你作爲目前唯一的解決辦法。
這樣的話,你可以通過一個名爲好標籤,而不是尋求通過日誌的SHA1參考。
注:可能有多個「根」在一個Git回購承諾(即多次提交,沒有任何父母)
例如見this thread,與Jakub Narębski的回答是:
且不說你可以在git存儲庫中擁有多個根(多個提交但沒有父項)。
除了獨立的分支(如「man
」,「html
」或「todo
」)通常被吸收或子樹合流其他項目的結果。
在 'master
' 分支有5根或更多:加入了 'git-tools
'(mailinfo
/mailsplit
),吸收gitweb
,和子樹-合併gitk
和git-gui
。
沒那麼容易,但你可以得到對應於HEAD(頭的父母的父母的父母的......父母,直到提交到達沒有父)使用的「根」的SHA
git rev-list --topo-order --reverse HEAD | head -n 1
實際上適用於任何提交。如果有多條收斂歷史路徑,您將獲得提交數最多的路徑的根。
我不能說,我看不到任何任何使用它,雖然。大多數有理由將歷史深入歷史的東西已經知道如何。
還要注意,git倉庫中可能有多個根(無父級)提交;上面的調用會找到其中一個。 – 2010-10-04 07:30:14
要找到SHA-1的標識符所有根提交的git倉庫(與任何本地分行開始),可以使用下面的命令:
$ git rev-list --parents --all | grep -v ' '
然後可以使用git show
檢查他們。
說明:git rev-list
選項--parents
使得打印空格分隔提交的所有家長清單(格式爲 「提交父...」)。因此,如果提交具有任何父項,則git rev-list
調用中的行至少包含一個空格,將提交標識與其父ID相分離。
選項--all
意味着git rev-list
作品彷彿在refs/
所有裁判都在命令行中列爲< 提交 >。
1.真的,爲了什麼? 2.並不總是這樣的事情,但你可以假裝你總是選擇第一個父母。 – 2010-10-01 02:03:58
這些「各種原因」是什麼? – 2010-10-04 07:41:08