これが、エラーメッセージが表示される理由です。
git checkout
2つのうちの1つを行うことができます。ブランチを指定するだけでパスを指定しない場合、現在のブランチが指定したブランチに切り替わります。
git checkout mybranch # switch to branch 'my branch'
いくつかのパスを指定すると、git はそれらのパスをインデックスからチェックアウトするか、ブランチを指定した場合は特定のブランチからチェックアウトします。
git checkout myfile # checkout 'myfile' from index
ご覧のとおり、潜在的なあいまいさがあります。myfile
という名前のブランチまたはという名前のファイルがあった場合はどうなるmybranch
でしょうか?
git がこのあいまいさを解決する方法は、最初にパラメーターをテストしてブランチに一致するかどうかを確認し、そうでない場合はパラメーターがファイルを参照していると見なすことです。同じ名前のブランチとファイルがある場合は、この構文を使用して git にパラメーターをファイルとして強制的に処理させることができます。
git checkout -- myfile # treat 'myfile' as a file
新しいブランチを作成するオプションは、の-b
ブランチ切り替え形式を使用している場合にのみ有効でcheckout
あり、インデックスから指定されたファイルをチェックアウトしている場合には有効ではありません。
git checkout -b newbranch myfile # Illegal. I can't use `-b` when
# I'm checking out files.
試しgit checkout -b newbranch origin/BRANCH
てみてこのエラーが発生した場合はorigin/BRANCH
、ブランチの名前と一致しなかったため、git はファイルを参照している必要があると想定しました。
あなたができるリモートブランチ参照を表示するにはgit branch -r
. 存在するはずのブランチへの参照がない場合はgit fetch
、リモートから取得するために a を実行する必要がある場合があります。
-b
新しいブランチのベースとなるブランチ名を指定しない場合、git はデフォルトで using HEAD
、つまり現在チェックアウトされているブランチがオンになっているコミットを使用します。
git checkout -b origin/BRANCH
これにより、現在のコミットに基づいて呼び出される新しいローカルブランチが作成されます。origin/BRANCH
これはせいぜい、混乱を招く可能性が高く、まったく望んでいるようには聞こえません。