865

cd -gitと同等のものが欲しいです。ブランチmasterにいてチェックアウトしている場合は、に戻るようなものを入力し、もう一度入力してに戻ることができるようfooにしたいと思います。git checkout -masterfoo

このようなものはありますか?実装するのは難しいでしょうか?

4

8 に答える 8

1482

1.6.2のリリースノートから

@{-1}最後に行っていたブランチを参照する方法です。これは
、オブジェクト名が期待される場所だけでなく、ブランチ名が期待される場所でも受け入れられ、ブランチ名を入力したかのように機能します。
たとえば、、、git branch --track mybranch @{-1}およびgit merge @{-1}
git rev-parse --symbolic-full-name @{-1}期待どおりに機能します。

git checkout -の省略形ですgit checkout @{-1}

于 2011-08-26T16:05:01.967 に答える
281

最近これを行う最も簡単な方法は次のとおりです。

git checkout -

...これは次のエイリアスです:

git checkout @{-1}

gitcheckoutマイナス

これについてもっと知りたい場合は、ここに記事全体を書きました:Gitの前のブランチをチェックアウトしてください。

于 2015-10-18T14:23:15.510 に答える
32

@Karlが指摘しているように、そしてgit checkoutマニュアルから:

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

したがって、両方ともgit checkout -このgit checkout @{-1}場合は機能します

最も近いと思うのは、を使用しgit reflogて最新のものを解析しmoving from branch1 to branch2git checkout branch1

于 2011-08-26T15:16:36.810 に答える
32

Gitバージョンでは、それを実行するために使用できるコマンド(およびそれ以上)が2.23導入されました。git switch公式ドキュメントの引用:

指定されたブランチに切り替えます。作業ツリーとインデックスは、ブランチに一致するように更新されます。すべての新しいコミットは、このブランチの先端に追加されます。

特定のケースでgit switch -は、以前にいたブランチに戻るために発行することができます。同じコマンドを再度実行して、最初のブランチに戻ることができます。

PSそれを行う方法がまだわからないわけではありませんが(この質問をしてから7年が経過していることを意味します)、このコマンドは、を使用するときに発生する一般的な混乱git checkoutに対処するため、初心者にとっては混乱が少なくフレンドリーです。

于 2019-08-22T11:42:13.553 に答える
12

私は前の支店をチェックアウトするのと同じ考えでこの質問にたどり着きました。私はでohmyzを使用していMacます。以下のコマンドは私を助けました。

$ gco -
$ git checkout -
于 2017-08-02T16:34:59.560 に答える
11

動作するメカニズムを理解するために、前の回答にもう少し詳細を追加するだけgit checkout @{-N}です。git reflogreflogをウォークアウトしてチェックアウト履歴を検査するため、同様の何かを自分で実装したい場合は、行を探す出力を解析できるはずですcheckout:。git sourceで実装を確認できます。sha1_name.c具体的には、関数interpret_nth_prior_checkoutです。

于 2016-07-27T17:15:08.423 に答える
2

最も一般的な解決策は次のとおりです。

git checkout @{-N}

ここで、N-チェックアウト履歴に戻るためのブランチのステップ数。

于 2018-11-26T10:55:36.157 に答える
1

他の回答によって与えられた解決策を説明するGitのドキュメントの一部へのポインタは次のとおりgit checkout -です。git checkout @{-1}

于 2019-01-16T23:07:28.847 に答える