警告:参照名 'HEAD'があいまいです


139

私はGitを使い始めたばかりで、次のコマンドを実行すると1つのブランチが多すぎるようです。

warning: refname 'HEAD' is ambiguous.

次の出力が表示されます。

warning: refname 'HEAD' is ambiguous.
From github.com:dagda1/hornget
 * branch            master     -> FETCH_HEAD
warning: refname 'HEAD' is ambiguous.
warning: refname 'HEAD' is ambiguous.

実行すると git branch -a

私は以下を得ます:

HEAD
* master
remotes/emmekappa/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

私は混乱していremotes/origin/HEAD -> origin/masterます。

これは何であり、どのようにして曖昧なブランチを取り除くことができますか?

あいまいなブランチを追加したと思うマージを実行して、この段階に到達しました。


11
実行しようとする最初のコマンドは何ですか?確かにそうではありませんwarning: refname 'HEAD' is ambiguous.
ベンジェームズ

1
remotes/origin/HEAD -> origin/master問題ではありませんorigin。リモートのデフォルトのブランチが表示されるだけです。というブランチHEADです。
JakubNarębski、2009年

3
実行しようとしているコマンドを表示するには、質問を編集する必要があると思います:)
Kris

これを再現するには、「git fetch origin HEAD:HEAD」を実行します。どうやらそれは現在のブランチを文字通りHEADと呼ばれる新しいブランチにマージしようとしています。
Brain2000

回答:


224

問題はHEAD現在のブランチであるブランチのシンボル名であるため、絶対に危険なブランチが呼び出されることです。

名前を変更します。

git branch -m HEAD newbranch

次に、それを調べて、何をするかを決定できます(削除するか、説明的なブランチ名で保存します)。

origin/HEADリモートブランチは問題ありません)


これは、ブランチと同じ名前のファイルまたはディレクトリがある場合にも発生する可能性があります。
マットコノリー

2
一方でorigin/HEADかもしれないが、問題ではない、あなたが誤って呼ばれるブランチ作成した場合、origin/somebranch問題となっている(と同じ「あいまいな」エラーメッセージが表示されます)。「somebranch」からプルしようとすると、リモートではなくローカル(偶発的)ブランチからプルすることになります。その場合、フリッカーフライの提案はうまくgit branch -d origin/somebranch機能することがわかりました。
machineghost 2012年

おかげで修正されました。注目に値するのは、「HEAD」ブランチは私ではなく自動的に作成されることです。単一のマージコミットが含まれており、reflogを使用してクリーンな状態に戻すことができませんでした。そこで、ブランチの名前を変更して削除し、「1つ先」のローカルマスターをオリジン/マスターに
リベースしまし

1
ブランチだけでなく、タグでも同じことが起こります。
sebix 2017年

1
ハァッ!頭を持ち、head(小文字)という名前のブランチを作成したロボットを使用します。
orion elenzil 2018年

36

また、これが不要な場合は、ブランチを削除します。

git branch -d HEAD

大文字-Dを使用して削除を強制します。

git branch -D HEAD

3
それでもあいまいなままですが、それを削除する方法はありますか?
RzR

27

HEADusing という名前のタグを作成した場合...

git tag HEAD

...次のコマンドを使用して、そのタグを削除できます。

git tag -d HEAD

このケースを参照してください:kerneltrap.org/git-tag HEAD


これは、誤ってHEADという名前のタグを追加した場合に発生するため、ここで提案されているように削除する必要があります
user1610308

1

これは、「head」という名前のブランチがあることを意味します。同じ問題が発生したので、次のコマンドを実行して解決しました。

git branch -d head

1

gitリポジトリで利用可能な参照を確認してください。リポジトリに2つのHEADが表示されます。これにより、refname HEADを持つブランチが不明確になります。

git show-ref

解決:

  • ブランチの名前を変更する

    git branch -m HEAD <new_branch_name>
    

    または

  • ブランチを削除する

    git branch -d HEAD
    
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.