【问题标题】:Git checkout: "@{-N}" syntaxGit 签出:“@{-N}”语法
【发布时间】:2013-02-19 19:03:26
【问题描述】:

我在 git 手册页中找到了这部分,但这是一种混淆的解释:

作为一种特殊情况,“@{-N}”语法用于第 N 个最后一个分支 检查分支(而不是分离)。您还可以指定 - 与“@{-1}”同义。

什么意思?

【问题讨论】:

    标签: git


    【解决方案1】:

    如果你这样做:

    git checkout @{-1}
    

    您将在签出当前分支之前签出您所在的分支。此外,它按名称检查它,因此您实际上会该分支上,而不是仅仅检查处于分离 HEAD 状态的提交。类似地,您可以使用git checkout @{-2} 返回“之前的两个分支更改”,依此类推。

    【讨论】:

      【解决方案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} 的同义词。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-05
        • 2022-11-13
        • 1970-01-01
        • 1970-01-01
        • 2011-03-31
        • 2017-12-19
        • 2018-09-20
        • 2021-12-28
        相关资源
        最近更新 更多