リモートオリジン/参照/ヘッド/マスターを削除する方法
-
28-10-2019 - |
質問
どうやって聞かないでくださいが、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.
しかし、示されているように、これはエラーを与えます。
解決 2
解決策は、ブランチを削除することでした refs/heads/refs/heads/master
git push origin :refs/heads/refs/heads/master
他のヒント
それは実際にはリモート上のブランチではありません - オリジン/マスターがリモート上のマスターブランチを表すように、リモート上で何かを表すと主張するのは、単なるローカルREFです。 refのフルネームはです refs/remotes/origin/refs/heads/master
. 。あなたがそれを削除するためにしなければならないことは:
git branch -r -d origin/refs/heads/master
あなたもこれをプッシュすることができた可能性は漠然と可能です(しかし、あなたはそうするためにさらに一生懸命努力しなければならなかったでしょう)。もしそうなら、私は単に原産地の参照をリストするだけです:
git ls-remote origin
そして、そこに何か愚かなことがあるなら、 git push origin :<refname>
それを取り除くために。
PSこれがあなたのためにそれをしない場合、あなたは使用したいと思うでしょう git for-each-ref
あなたのすべての参考文献を見るために、そしておそらく git ls-remote origin
すべてのリモートのものを見て、追跡するには まさに 完全に資格のあるリフネームで、どちらが属していません。
これは
git branch -r -d origin/ref/heads/master
それ以外の
git branch -r -d origin/refs/heads/master
ブランチを削除するコードパーツで。コードにはrefワードに違いがあります。