1. ホーム
  2. git

[解決済み] 「git checkout --" ... vs git checkout [duplicate] ...

2023-03-10 16:34:46

質問

私はいつも git checkout -- . を使って作業ディレクトリをクリアしていました。どこかで読んだ気がしたのですが -- が必要なのは、git がパラメータを渡していると勘違いするのを防ぐためだそうです(あるいは何か)。

今度は、同僚が -- を削除することができ、実際、簡単なテストではまったく同じことができました。

この2つのコマンドに違いはあるのでしょうか?

追記:ここで質問しているのは git checkout -- .git checkout . は、ちょっとググりにくいですね...。

どのように解決するのですか?

私は -- の後に続くものを扱うようにGitに指示する方法です。 checkout をファイルとして扱い、ブランチとしては扱わないようにする方法です。 というファイルとブランチの両方があったとしましょう。 stuff . そうすると、次のコマンドはあいまいな印象を与えるでしょう。

git checkout stuff

を使うと、ファイルをチェックアウトするのかブランチをチェックアウトするのかがわからなくなるからです。 そのため -- を使えば、その名前/パスでファイルをチェックアウトするよう明示的にGitに指示することができます。 この場合、次のコマンドを実行するとブランチと stuff :

git checkout stuff       # checkout the branch stuff
git checkout -- stuff    # checkout the file stuff

なお git checkout <name> は本当はブランチのためのものですが、Git の構文はゆったりしており、Git はブランチを見つけられない場合はファイルを探します。

密接に関連する 同じ名前のファイルが存在する場合、Gitはブランチを変更する