90

ここで同じ質問をしている人が何人かいましたが、彼らのアドバイスはどれも私には当てはまらないようです。このタイトルにある警告が表示されますが、「master」という名前のタグがありません。これは次の結果ですgit branch -a

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

ここで何がうまくいかない可能性があるか考えてみてください。gitを使用してから数か月しか経っていないので、このあいまいさが将来リポジトリに影響を与える可能性があることを心配しています。

4

6 に答える 6

106

私の場合、「update-ref」コマンドを誤って発行したときまで、この警告の原因を追跡していました。最初の引数で完全なrefs/heads / mybranchnameパスを指定するのを忘れた場合、ファイル.git / mybranchnameが作成され、後でそのブランチに切り替えようとするとこの警告が表示されます。

これは、.git / mybranchnameを削除するだけで解決されます。例:

rm .git/master

参考までに、update-refコマンドの正しい形式は次のとおりです。

git update-ref refs/heads/mybranchname mytargetbranch

「refs/heads」の部分を忘れないでください!

また、update-refの最も一般的なユースケースは、ブランチを手動で移動して別のコミットを指すようにすることです。これは、より簡単な構文で実行できることがわかりました。

git branch -f myBranchToMove destinationBranchOrHash

この構文は、エラーが発生しやすいrefs / headsパス修飾子を必要としないため、私にとっては簡単です。

于 2013-04-30T14:24:20.030 に答える
31

Git:refname' master'はあいまいheads/masterです」で詳しく説明されているように、これは、gitリポジトリ内の次の名前空間のいずれかに別のマスターがあることを意味します。

refs/<refname> 
refs/tags/<refname>
refs/heads/<refname>
refs/remotes/<refname>
refs/remotes/<refname>/HEAD

または、マグナス答え./<refname>で述べられているように。

于 2012-10-26T08:44:20.330 に答える
15

将来の参考のために、私は同じ問題を抱えていました、そして私のために働くことになったのはここで説明された解決策でした。基本的に、Git: warning: refname 'xxx' is ambiguous警告が表示されたら、次を使用できます。ブランチgit show-ref xxxへの参照を確認し、競合している参照を検証します。xxx

私のシナリオでは、それは同じ名前のタグxxxとブランチ名でした。タグが誤って作成され、サーバーから削除されたため、サーバーに一致するようにローカルタグを更新するだけで済みましたgit fetch -p -P。このコマンドの詳細については、こちらをご覧ください

于 2019-01-28T18:49:28.853 に答える
6
git fetch --prune

git pull origin branch-name

問題を解決する必要があります。

于 2018-01-09T05:46:50.153 に答える
5

タグと同じ名前のブランチを作成したときに、同様の問題(マスターではない)が発生しました。

これは私がタグhttps://stackoverflow.com/a/5480292/150953を削除するのに役立ちました

git push --delete origin tagname
于 2018-10-10T23:47:49.713 に答える
3

.git/configファイルを確認してください。同じもので構成された複数のリモートリポジトリがある場合、この問題が発生する可能性があります。

fetch = +refs/heads/*:refs/remotes/origin/*

他のリモートサーバーには別の名前を付ける必要があります。例:

fetch = +refs/heads/*:refs/remotes/another_repo/*

于 2021-02-20T09:51:23.173 に答える