我在git联机帮助页中找到了这一部分,但这是一种模糊的解释:
作为一种特殊情况,第N个最后一个分支的“@ { - N}”语法 检查分支(而不是分离)。您也可以指定 - 这与“@ { - 1}”同义。
这是什么意思?
答案 0 :(得分:2)
如果你这样做,那就说:
git checkout @{-1}
您将检查您已签出的当前分支之前所在的分支机构。此外,它通过名称将其检出,因此您实际上 on 该分支,而不是仅仅以分离的HEAD状态检出该提交。同样,您可以使用git checkout @{-2}
返回“之前的两个分支更改”,依此类推。
答案 1 :(得分:1)
有些"混淆" Git 2.16(2018年第一季度)澄清了解释
@{-N}
" git checkout @{-N}
"可以指一个独立的HEAD状态,
但文件并不清楚,已经修复了。
commit 75ce149见Kaartic Sivaraam (sivaraam
)(2017年11月27日)
(由Junio C Hamano -- gitster
--合并于commit 7065665,2017年12月13日)
Doc/checkout
:使用@{-N}
结帐会导致分离状态
@{-N}
是第N个"结帐" 的语法,而不仅仅是第N个"分支"的语法。因此,在某些情况下使用git checkout @{-$N}
是否会导致一个分离的HEAD"状态。
这也可以通过75d6e55的提交消息来确保(文档:@{-N}
可以引用提交,2014-01-19,Git 1.9-rc1),它明确指出了@{-N}
如何能够用于不仅指代分支而且指代提交。更正误导性句子,指出
@{-N}
没有分离头部。
git checkout
man page现在显示为:
您可以使用
"@{-N}"
语法来指代N-last 使用" git checkout"检出分支/提交操作。
您也可以指定与-
同义的"@{-1}
。