リモートブランチを削除すると、Git はリモート参照が存在しないと表示します 質問する

リモートブランチを削除すると、Git はリモート参照が存在しないと表示します 質問する

私は走ったgit branch -a

* master
  remotes/origin/test
  remotes/origin/master

リモートブランチを削除したい

私はもう試した

git push origin --delete remotes/origin/test

私は

エラー: 'remotes/origin/test' を削除できません: リモート参照が存在しません

なぜ存在しないのでしょうか?

を実行したgit branch -aところ、リストに載っていました。

何か見逃しましたか?

ベストアンサー1

このコマンドは、ローカル リポジトリにgit branch -a存在するリモート ブランチを表示します。これは少しわかりにくいかもしれませんが、これを理解するには、リモート ブランチとリモート リポジトリに存在するブランチには違いがあることを理解する必要があります。リモート ブランチは、リモート リポジトリのブランチにマップされるローカルブランチです。したがって、リモート ブランチのセットは、リモート リポジトリの状態を表します。

リモート ブランチのリストを更新する通常の方法は、 を使用することですgit fetch。これにより、リモートから更新されたブランチのリストが自動的に取得され、ローカル リポジトリにリモート ブランチが設定され、不足しているコミット オブジェクトも取得されます。

ただし、デフォルトでは、git fetchリモートに対応するブランチがなくなったリモート ブランチは削除されません。これを行うには、リモート ブランチのリストを明示的に削除する必要があります。

git fetch --prune

これにより、リモート上に存在しなくなったリモート ブランチが自動的に削除されます。その後、git branch -rリモート上に実際に存在するブランチの更新されたリストが表示されます。これらは を使用して削除できますgit push

そうは言っても、 を使用するにはgit push --delete、リモート ブランチの名前ではなく、リモート リポジトリのブランチの名前を指定する必要があります。したがって、ブランチtest(リモート ブランチ で表されるorigin/test) を削除するには、 を使用しますgit push origin --delete test

おすすめ記事