混帐结帐: “@ { - N}” 语法
我发现git的手册页本节,但它是一种模糊化的交代的:混帐结帐: “@ { - N}” 语法
作为一个特殊的情况下, “@ { - N}”第N个最后分支 的语法会检出分支(而不是分离)。您也可以指定 - 与“@ { - 1}”同义。
这是什么意思?
它说,如果你这样做:
git checkout @{-1}
你看看你是在已签出当前分支之前的分支。另外,它通过名称检查出,所以你实际上是的那个分支,而不是仅仅检查在分离的HEAD状态下的提交。同样,您可以使用git checkout @{-2}
返回“之前两个分支更改”,等等。
Git 2.16(Q1 2018)澄清了这个有点“混淆”的解释。 @{-N}
在“git checkout @{-N}
”可能指分离的HEAD状态, ,但文档不清楚,它已被修复。
请参阅commit 75ce149(2017年11月27日)作者:Kaartic Sivaraam (sivaraam
)。
(在commit 7065665由Junio 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。
可以使用
"@{-N}"
语法参考了N次最后 分支/提交使用“git的结帐”操作检查。
您也可以指定-
,它与"@{-1}
同义。