2013-02-19 107 views
1

我發現git的手冊頁本節,但它是一種模糊化的交代的:混帳結帳: 「@ { - N}」 語法

作爲一個特殊的情況下, 「@ { - N}」第N個最後分支 的語法會檢出分支(而不是分離)。您也可以指定 - 與「@ { - 1}」同義。

這是什麼意思?

回答

2

它說,如果你這樣做:

git checkout @{-1} 

你看看你是在已簽出當前分支之前的分支。另外,它通過名稱檢查出,所以你實際上是那個分支,而不是僅僅檢查在分離的HEAD狀態下的提交。同樣,您可以使用git checkout @{-2}返回「之前兩個分支更改」,等等。

1

Git 2.16(Q1 2018)澄清了這個有點「混淆」的解釋。
@{-N}在「git checkout @{-N}」可能指分離的HEAD狀態, ,但文檔不清楚,它已被修復。

請參閱commit 75ce149(2017年11月27日)作者:Kaartic Sivaraam (sivaraam)
(在commit 7065665Junio C Hamano -- gitster --合併,2017年12月13日)

Doc/checkout:檢查出使用@{-N}可導致分離狀態

@{-N}是用於第N最後的 「結帳」 語法而不僅僅是第N個最後的「分支」。因此,在某些情況下使用git checkout @{-$N} 會導致「分離的HEAD」狀態。
這也可以通過75d6e55的提交消息確保(文檔:@{-N}可以參考提交,2014年1月19日,GIT中1.9-RC1),清楚說明如何@{-N}可以用來不僅指一個分支,但也對一個提交。

更正誤導性句子,指出@{-N}不會分離HEAD。

git checkout man page現規定:

可以使用"@{-N}"語法參考了N次最後 分支/提交使用「git的結帳」操作檢查。
您也可以指定-,它與"@{-1}同義。