git
次のコマンドの違い:
git checkout branch
git checkout branch .
git checkout . #<-- used at the branch
さまざまなブランチを最初のフォルダーとは別のフォルダーにチェックアウトすると、いくつかのファイルが欠落したのはなぜですか。
しかし、2 番目のコマンドを使用しているときは、すべて問題ありませんか?
git
次のコマンドの違い:
git checkout branch
git checkout branch .
git checkout . #<-- used at the branch
さまざまなブランチを最初のフォルダーとは別のフォルダーにチェックアウトすると、いくつかのファイルが欠落したのはなぜですか。
しかし、2 番目のコマンドを使用しているときは、すべて問題ありませんか?
git checkout
(1)パス指定子が指定されているかどうかに関係なく、非常に異なることを行います。
git checkout branch
すると、現在の作業ディレクトリを指定されたブランチに切り替え、可能であればローカルの変更を保持し、それ以外の場合は失敗します。すでにオンbranch
になっている場合は、何もしません。HEAD
とと の間で異なる作業ディレクトリ内のファイルのみを変更しbranch
、それらのいずれかにローカルの変更 (インデックスが作成されているかどうかに関係なく) がある場合は失敗します。.
) が指定された内容で
上書きされます。git checkout .
すると、インデックスからコンテンツが書き込まれます。つまり、ステージングされていないローカル変更を元に戻します。段階的な変更を元に戻すにはgit reset
、パス指定子とともに使用します。git checkout branch .
して、指定されたリビジョンにコンテンツを書き込みます。whereポイントは変更されないため、が と異なる場合は、後でステージングされていない変更が行われます。HEAD
branch
HEAD
man ページでは、-b/--branch オプションと -p/--patch オプションを使用する追加のケースが区別されていますが、それらはほとんど上記のケースの簡単な拡張です。
上記の説明は問題ありませんが、例を挙げて説明しましょう。
git checkout
ファイルフォルダーとブランチで使用できます。
index.html
ファイルとdev
フォルダがあるとしましょう。
誤って変更index.html
して元に戻したい場合は、単に実行しgit checkout index.html
ます。ファイルを元の形式に戻します。
ここで、dev フォルダー内でいくつかの変更を行い、それらの変更を dev フォルダー内に戻したいとしましょう。使用するgit checkout dev
場合、ブランチがある場合は、という名前のフォルダーではなく、dev
その開発ブランチdev
をチェックアウトします。
だからむしろ私は走るだろう
git checkout -- dev
現在、この裸の二重ダッシュは現在のブランチを表しています。したがって、上記のコマンドは git から要求されているため、現在のブランチから「dev」という名前のフォルダーを指定してください。
ユースケースについて話しましょう。
git checkout branch
このコマンドは、単に「branch」という名前のブランチをチェックアウトします
git checkout branch .
.
2 番目のコマンドは、'branch' という名前のブランチからチェックアウトするか、現在のフォルダー名を指定するように git に指示します。
git checkout . #<-- used at the branch
あなたが最初に言っているように、「branch」という名前のブランチに切り替えてからgit checkout branch
、単に実行しているだけです。名前付きのgit checkout .
ブランチがない.
ため、現在のブランチから現在のフォルダー名を単にプルダウンします。