Git checkout:“@ { - N}”语法

时间:2013-02-19 19:03:27

标签: git

我在git联机帮助页中找到了这一部分,但这是一种模糊的解释:

  

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

这是什么意思?

2 个答案:

答案 0 :(得分:2)

如果你这样做,那就说:

git checkout @{-1}

您将检查您已签出的当前分支之前所在的分支机构。此外,它通过名称​​将其检出,因此您实际上 on 该分支,而不是仅仅以分离的HEAD状态检出该提交。同样,您可以使用git checkout @{-2}返回“之前的两个分支更改”,依此类推。

答案 1 :(得分:1)

有些"混淆" Git 2.16(2018年第一季度)澄清了解释 @{-N}" git checkout @{-N}"可以指一个独立的HEAD状态, 但文件并不清楚,已经修复了。

commit 75ce149Kaartic 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}