質問

どうやって聞かないでくださいが、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ワードに違いがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top