それは以下のいずれかの名前ではありませんコミットのいずれかのチェックアウトあなたの枝はあなたに切り離さHEADを取得します。ブランチの先端を表すSHA1は、分離したHEADを提供します。ローカルブランチ名のチェックアウトのみがそのモードを回避します。
デタッチされたHEADでのコミットを参照してください
HEADがデタッチされると、コミットは通常のように機能しますが、名前付きブランチは更新されません。(これは匿名のブランチと考えることができます。)
たとえば、最初に追跡しないで「リモートブランチ」をチェックアウトすると、デタッチされたHEADになる可能性があります。
git:ヘッドを切り離さずにブランチを切り替えるを参照してください
Git 2.23(2019年8月)では、混乱するgit checkout
コマンドを使用する必要がなくなりました。
git switch
ブランチをチェックアウトして、デタッチHEADを取得することもできます。
HEAD~3
新しいブランチを作成せずに一時的な検査または実験のためにコミットをチェックアウトするには:
git switch --detach HEAD~3
HEAD is now at 9fc9555312 Merge branch 'cc/shared-index-permbits'
- リモート追跡ブランチを誤って切り離すことはできません
見る:
C:\Users\vonc\arepo>git checkout origin/master
Note: switching to 'origin/master'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
対 新しいgit switch
コマンドを使用:
C:\Users\vonc\arepo>git switch origin/master
fatal: a branch is expected, got remote branch 'origin/master'
リモートブランチを追跡する新しいローカルブランチを作成したい場合:
git switch <branch>
<branch>
が見つからないが<remote>
、一致する名前を持つ1つのリモート(これを呼び出す)に追跡ブランチが存在する場合は、次と同等として扱います。
git switch -c <branch> --track <remote>/<branch>
これ以上の間違いはありません!
不要なデタッチされたヘッドはもうありません!
branch-name@{n}
、の前のn番目の位置をチェックアウトすることですbranch-name
。しかし、何があっても、ある時点でがあったはずgit checkout <rev>
です。それがベルを鳴らさないなら、おそらくあなたはウィルが言及したことをしたでしょう-しようとしgit checkout <file>
、誤ってリビジョンを指定することに成功しました。