必要のないリモートブランチを削除(リモートサーバー側)
git branch -d
コマンドを使ってローカルのブランチを削除しても、GitHub などに既に push されているブランチは削除されません(他のメンバーには、まだブランチが存在しているように見えます)。
GitHub 側のブランチを削除するには、ローカルブランチを削除するのとは別のコマンドを実行する必要があります。
まずは、リモートトラッキングブランチの一覧を確認しておきます。
$ git branch -r
origin/HEAD -> origin/main
origin/main
origin/mybranch1
origin/mybranch2
origin/mybranch3
例えば、この中の mybranch2
を削除したい場合は、以下のようにして origin
サーバに削除要求を送ります。
削除したいブランチの名前の前にコロン (:
) を付けるのがポイントです。
$ git push origin :mybranch2
git push
の 2 番目のパラメータで指定するリファレンス名は、<プッシュ元のブランチ名>:<プッシュ先のブランチ名>
という形式を取りますが、このコロンの左側の部分を空にすることで、プッシュ先のブランチを削除する(空にする)という意味になります。
ローカル側のリモートトラッキングブランチを削除する
中央リポジトリ (GitHub) 側のブランチを削除しても、ローカルに作られているリモートトラッキングブランチは削除されません。 以下のように必要のないリモートトラッキングブランチを削除する必要があります。
# フェッチと同時に必要のないリモートトラッキングブランチを削除する(オススメ)
$ git fetch --prune
# 必要のないリモートトラッキングブランチを削除する
$ git remote prune origin
あるいは、以下のように指定したリモートトラッキングブランチを削除することもできます。
$ git branch -r -d origin/mybranch
前者の場合は、中央リポジトリ上から実際に削除されたブランチを、ローカルのリモートトラッキングブランチから削除します。 後者の場合は、中央リポジトリは関係なしに、指定したローカルのリモートトラッキングブランチを削除します。