私は走った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
。