1

このセクションはgitのマンページにありますが、説明がわかりにくいものです。

特別な場合として、最後のN番目のブランチの「@ {-N}」構文は、ブランチをチェックアウトします(デタッチする代わりに)。「@{-1}」と同義の--を指定することもできます。

どういう意味ですか?

4

2 に答える 2

2

あなたがそうするなら、それは言っています:

git checkout @{-1}

チェックアウトした現在のブランチの前に、現在のブランチをチェックアウトします。さらに、名前でチェックアウトするため、切り離されたHEAD状態でコミットをチェックアウトするだけでなく、実際にそのブランチにいることになります。git checkout @{-2}同様に、 「2つのブランチの変更前」などに戻るために使用できます。

于 2013-02-19T19:12:19.307 に答える
2

そのやや「曖昧な」説明は、Git 2.16(2018年第1四半期)で明確にされています。
@{-N}in " git checkout @{-N}"は、切り離されたHEAD状態を指している可能性がありますが、ドキュメントはそれについて明確ではなく、修正されています。

Kaartic Sivaraam()によるcommit 75ce149(2017年11月27日)を参照してください。濱野純雄による合併---コミット70656652017年12月13日sivaraam
gitster

Doc/checkout:を使用してチェックアウトする@{-N}と、切り離された状態になる可能性があります

@{-N}は、 N番目の最後の「ブランチ」だけでなく、N番目の最後の「チェックアウト」の構文です。したがって、git checkout @{-$N} DOESを使用すると、「HEADが切り離された」状態になる場合があります。
これは、75d6e55のコミットメッセージ(ドキュメント:@{-N}コミットを参照できます、2014-01-19、Git 1.9-rc1)によっても確認できます。このメッセージは@{-N}、ブランチだけでなくコミットも参照するためにどのように使用できるかを明確に指定しています。 。

@{-N}HEADを切り離さないという誤解を招く文を修正してください。

git checkoutマニュアルページは次のようになります。

構文を使用し"@{-N}"て、「gitcheckout」操作を使用してチェックアウトされたN番目の最後のブランチ/コミットを参照できます。に同義語を
指定することもできます。-"@{-1}

于 2017-12-15T20:25:12.060 に答える