どのように私に尋ねないでください、しかし私はgitリポジトリで次のリモートブランチを誤って取得することができました:
$ git branch -r
Origin/HEAD -> Origin/master
Origin/master
Origin/refs/heads/master
すべてが同じコミットを指しています。 Origin/refs/heads/master
の不要なリストを削除するにはどうすればよいですか?
私は次のことをやろうとしました
$ git Push Origin :refs/heads/master
error: dst refspec refs/heads/master matches more than one.
しかし、示されているように、これはエラーになります。
解決策はブランチを削除することでしたrefs/heads/refs/heads/master
git Push Origin :refs/heads/refs/heads/master
これは実際にはリモート上のブランチではありません。Origin/ masterがリモート上のマスターブランチを表すのと同じように、リモート上の何かを表していると主張するのはローカル参照です。参照の完全な名前はrefs/remotes/Origin/refs/heads/master
です。それを削除するためにあなたがしなければならないすべてはです:
git branch -r -d Origin/refs/heads/master
なんとかこれをプッシュすることもできた可能性があります(しかし、そうするためにさらに努力する必要があったでしょう)。もしそうなら、私は単にOriginのリファレンスをリストします:
git ls-remote Origin
そして、そこに馬鹿げたことがあったら、それを取り除くためにgit Push Origin :<refname>
を使います。
追伸これでうまくいかない場合は、git for-each-ref
を使用してすべての参照を表示し、場合によってはgit ls-remote Origin
を使用してすべての参照を表示し、追跡してください正確に完全修飾参照名を使用して、属していないもの。
それは
git branch -r -d Origin/ref/heads/master
の代わりに
git branch -r -d Origin/refs/heads/master
コード部分でブランチを削除します。コード内の参照ワードに違いがあります。