Git から無効なリモート ブランチ参照を削除するにはどうすればよいでしょうか? 質問する

Git から無効なリモート ブランチ参照を削除するにはどうすればよいでしょうか? 質問する

現在のリポジトリでは、次の出力があります。

$ git branch -a
* master
  remotes/origin/master
  remotes/public/master

remotes/public/masterブランチリストから削除したいもの:

$ git branch -d remotes/public/master
error: branch 'remotes/public/master' not found.

また、 の出力は がgit remoteリストされていないため奇妙ですpublic

$ git remote show 
origin

ブランチリストから「remotes/public/master」を削除するにはどうすればよいですか?

更新、git pushコマンドを試しました:

$ git push public :master
fatal: 'public' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

ベストアンサー1

クリーンアップが必要になる場合があります:

git gc --prune=now

または、剪定が必要かもしれません:

git remote prune public

プルーン

<name> の下にある古い追跡ブランチをすべて削除します。これらの古いブランチは、<name> によって参照されるリモート リポジトリから既に削除されていますが、ローカルでは "remotes/<name>" で引き続き使用できます。

--dry-run オプションを使用すると、どのブランチが剪定されるかを報告しますが、実際には剪定は行いません。

しかし、これらはもっと早くに片付けるべきだったようだ。

git remote rm public 

rm

<name> という名前のリモートを削除します。リモートのすべてのリモート追跡ブランチと構成設定が削除されます。

したがって、設定ファイルを手動で編集したためにこの問題が発生しなかったか、権限の問題がある可能性があります。

もう一度実行して何が起こるか見てみましょう。


アドバイスのコンテキスト

見てみると改訂ログ、私が提案したより「正しい」テクニックが、何らかの理由で彼らのリポジトリでは機能しなかったことに気づくでしょう。

私は、OP が何かを行ったためにツリーが一貫性のない状態になり、ツリーの動作が少しおかしくなり、git gc残された不要な部分を修正する必要があったのではないかと疑いました。

通常、 git branch -rd origin/badbranchローカルの追跡ブランチを削除するか、git push origin :badbranchリモートブランチを削除するには十分であり、通常は呼び出す必要はありません。git gc

おすすめ記事