gitでブランチを削除する方法

こんにちは、さるまりんです。

開発するにあたり履歴を管理することは大切ですよね。gitでバージョン管理をしているのですが、いろんな作業を続けるにあたり必要のないブランチが増えてきます。これを消す方法をメモしておきます。

ローカルブランチを削除

まずはローカルの作業です。

ローカルブランチの一覧を表示

最初にどんなブランチがあるを確認です。ローカルブランチの一覧をみるには

git branch

のコマンドを実行します。

実行例です。

$ git branch
master
development
development-v2
feature/XXX
feature/YYY

ブランチの一覧から削除したいブランチを特定したら次は削除です。

ローカルブランチの削除

ローカルブランチfeature/XXXを削除するには次のようにコマンドをを実行します。

git branch --delete feature/XXX

実行例です。

$ git branch --delete feature/XXX
Deleted branch feature/XXX (was xxxxxxxxx).

これでローカルブランチfeature/XXXは削除されています。

では、別のブランチfeature/YYYを削除してみます。

$ git branch --delete feature/YYY
error: The branch 'feature/YYY' is not fully merged.
If you are sure you want to delete it, run 'git branch -D feature/YYY'

怒られた!

HEADにマージされていないブランチは上のコマンドで消そうとすると怒られるようです。
マージしてからなら同じコマンドで削除することができます。

マージしてなくても構わない。もうこのブランチはローカルに必要ないという場合は次のコマンドでHEADにマージしているか否か関係なく削除することができます。

git branch -D feature/YYY

実行例です。

$ git branch -D feature/YYY
Deleted branch feature/YYY (was yyyyyyyyy).

無事削除できました。ローカルブランチの削除はこれで大丈夫ですね。

リモートブランチを削除

リモートブランチも整理する必要がりますね。

リモートブランチの一覧を表示

リモートブランチの一覧をみるにはこれです。

git branch --remote

実行するとこのように表示されます。

$ git branch --remote
origin/HEAD -> origin/master
origin/development
origin/development-v2
origin/feature/XXX
origin/feature/YYY

ローカルとさほど変わりませんね。origin/が付いてるくらいです。

で、削除するブランチを特定し、リモートブランチを削除です。

リモートブランチの削除

リモートブランチは次のように削除します。

git push --delete origin feature/XXX

実行例です。

$ git push --delete origin feature/XXX
To github.com:xxxxxxxx/xxxxxxxx.git
 - [deleted]             feature/XXX

これでOKです。

GitHubでやってます。それ以外のgitだとちょっと違うかもです。

たまには整理しないと、わけがわからなくなるので、できればこまめにやりたいですね。

整理整頓されてるってきもちいですね〜。快適な開発ライフを。

読んでくださってありがとうございます。

それではまた!