Git

Gitで不要なローカル・リモート追跡ブランチを削除する方法【簡単】

Gitで不要なローカル・リモート追跡ブランチを削除する方法【簡単】

Gitで不要なローカル・リモート追跡ブランチを削除するコマンドをまとめます。

あくまでコマンド(おまじない)を書いているだけで、裏側のロジックとか難しいことは書いていません。ご了承ください。

 

では簡単にまとめていきます。

ローカルブランチリモート追跡ブランチの違いがよく分かっていない方は、以下の記事に目を通してみて下さい。

 

Gitで不要なブランチを削除する方法(コマンド)

簡単な例を挙げながら、ブランチを削除する方法をまとめていきます。

Gitブランチの現状

ターミナルでgit brnach -aを打ち込むと、以下のようなブランチ状況になっているとします。

  • master(ローカルブランチ)
  • feature/develop(ローカルブランチ)
  • remotes/origin/master(リモート追跡ブランチ)
  • remotes/origin/feature/develop(リモート追跡ブランチ)

 

そして、開発ブランチであるfeature/developをリモートリポジトリ(GitHub, Bitbucketなど)にプッシュし、プルリクの対応も完了し、リモートのmasterにマージすると同時にリモートブランチ(リモートにあるブランチ)を削除したとします。(プルリク→マージのときに削除するかしないかを選択できます)

 

つまり、ローカルのfeature/developブランチとリモート追跡ブランチremotes/origin/feature/developは完全に用済みで、削除したい状況です。

 

ということで、最終目標はこちら。masterブランチだけを残します。

  • master(ローカルブランチ)
  • remotes/origin/master(リモート追跡ブランチ)

 

では、具体的にどのようなコマンドを打てばこの目標を達成できるのか、以下で紹介していきます。

Gitで不要なリモート追跡ブランチを削除する方法(コマンド)

まずはリモート追跡ブランチ(上記の例でいうとremotes/origin/feature/develop)です。

リモートブランチをすでに削除している場合、リモート追跡ブランチは以下のおまじないで一括削除できます。(pullとかする必要はなく、リモートでブランチをマージ&削除した時点でこのコマンドが使えます)

git remote prune origin

 

実際に実行してみると、、こんな感じになります。

  • master(ローカルブランチ)
  • feature/develop(ローカルブランチ)
  • remotes/origin/master(リモート追跡ブランチ)

 

remotes/origin/feature/develop(不要なリモート追跡ブランチ)が削除できています。

 

リモートでmasterマージに伴い削除したブランチは、以下のコマンドでもリモート追跡ブランチを削除することができます。

git fetch -p

もしくは

git fetch --prune

 

Gitで不要なローカルブランチを削除する方法(コマンド)

次に、不要なローカルブランチ(feature/develop)を削除しましょう。

以下のコマンドを打ち込みます。feature/developの部分は、任意のブランチ名に書き換え可能です。

git branch -d feature/develop

 

これを実行することで、以下のようになります。

  • master(ローカルブランチ)
  • remotes/origin/master(リモート追跡ブランチ)

 

masterブランチ(ローカルブランチ・リモート追跡ブランチ)だけ残して、不要なブランチを一掃できました。これでスッキリと次の開発に向かえます。

 

git branch -d [ブランチ名]でブランチを消せない場合は、強制削除コマンドgit branch -D [ブランチ名]を使ってみて下さい。

 

おわりに

今回は、自分用のメモとして、Gitで不要なブランチを削除する方法・コマンドについてまとめてみました。

 

少しでも参考になれば幸いです。

参考資料【Git関連】

この記事を書くにあたり、主に以下の記事を参考にさせて頂きました。Gitへの理解を深める上で有用な情報が満載なので、ぜひ目を通してみて下さい。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA