2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

リモートリポジトリのブランチを一気に削除する

Last updated at Posted at 2016-11-10

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

  • もう使わないので整理。
  • マージ済みのやつは問答無用で削除。
  • マージ済みでないやつは、開発中のブランチは削除しない。

リモートの削除なので、削除されるブランチを一旦確認してから実行してください。

作業の前後でfetchして最新にしつつ $ git br -a | grep origin/ | wc -lとかすれば削除されているのが確認できる。

以下のマージ済/未マージの分け方は、わかりやすいから分けているだけ。最初の一覧はgit br -aとかで一気に指定してもOK

環境

Mac

手順

追跡ブランチを最新にする

$ git fetch --prune [リポジトリ名]

リモートリポジトリ(ex. originリポジトリ)のマージ済みブランチを削除

    1. マージ済みの追跡ブランチ一覧
    1. originリポジトリの追跡ブランチ一覧
    1. master、HEAD(よくわからん)を除く
    1. origin/XXXXXXを、XXXXXXに置換
    1. リモートリポジトリにあるブランチを削除(このコマンドだけ消して、削除対象のブランチを確認したほうがいい)
$ git br -a --merged | grep remotes/origin/ | grep -v -e remotes/origin/master -e remotes/origin/HEAD | sed -e 's%remotes/origin/\(.\)%\1%g' | xargs git push --delete origin

リモートリポジトリ(ex. originリポジトリ)の未マージブランチを削除

    1. 未マージの追跡ブランチ一覧
    1. originリポジトリの追跡ブランチ一覧
    1. 削除したくないブランチ(以下の例だとrelease、developing_branch)を除く
    1. origin/XXXXXXを、XXXXXXに置換
    1. リモートリポジトリにあるブランチを削除
$ git br -a --no-merged | grep remotes/origin/ | grep -v -e remotes/origin/release -e remotes/origin/developing_branch | sed -e 's%remotes/origin/\(.\)%\1%g' | xargs git push --delete origin

リモートリポジトリ(ex. upstreamリポジトリ)のブランチを削除

マージ済みとか関係なくこっちは一気に削除。
    1. 追跡ブランチ一覧
    1. upstreamリポジトリの追跡ブランチ一覧
    1. master, releaseブランチは除く
    1. remotes/upstream/XXXXXXを、XXXXXXに置換
    1. リモートリポジトリにあるブランチを削除
$ git br -a | grep remotes/upstream/ | grep -v -e upstream/release -e upstream/master | sed -e 's%remotes/upstream/\(.\)%\1%g' | xargs git push --delete upstream
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?