【发布时间】:2013-02-19 19:03:26
【问题描述】:
我在 git 手册页中找到了这部分,但这是一种混淆的解释:
作为一种特殊情况,“@{-N}”语法用于第 N 个最后一个分支 检查分支(而不是分离)。您还可以指定 - 与“@{-1}”同义。
什么意思?
【问题讨论】:
标签: git
我在 git 手册页中找到了这部分,但这是一种混淆的解释:
作为一种特殊情况,“@{-N}”语法用于第 N 个最后一个分支 检查分支(而不是分离)。您还可以指定 - 与“@{-1}”同义。
什么意思?
【问题讨论】:
标签: git
如果你这样做:
git checkout @{-1}
您将在签出当前分支之前签出您所在的分支。此外,它按名称检查它,因此您实际上会在该分支上,而不是仅仅检查处于分离 HEAD 状态的提交。类似地,您可以使用git checkout @{-2} 返回“之前的两个分支更改”,依此类推。
【讨论】:
Git 2.16(2018 年第一季度)澄清了这种有点“模糊”的解释。
“git checkout @{-N}”中的@{-N} 可能指的是分离的 HEAD 状态,
但是文档没有说清楚,已经修复了。
参见Kaartic Sivaraam (sivaraam)commit 75ce149(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}不会分离 HEAD 的误导性句子。
git checkout man page 现在改为:
您可以使用
"@{-N}"语法来引用倒数第 N 个 使用“git checkout”操作签出分支/提交。
您也可以指定-,它是"@{-1}的同义词。
【讨论】: