開発ブログ

WWWクリエイターズが送る、Git、CSS、HTML、コマンドライン、Macの便利機能など、開発に関する役立ち情報発信します。気まぐれに更新。

gitでブランチを削除するコマンド。

最終更新:2017-08-18 by Joe

Git でブランチを削除するコマンドをまとめます。

ブランチには、ローカルブランチ、リモートブランチ、リモート追跡ブランチといった種類があり、それぞれ削除する方法が異なります。それぞれのブランチの削除方法が異なるため、最初に混乱しやすい点の一つだと思います。

ローカルブランチの削除

最も一般的な、ローカルレポジトリのブランチの削除です。

// ローカルブランチを削除する
git branch -d 
git branch --delete 

// マージされていないローカルブランチを削除
bit branch -D
git branch -df
git branch --delete --force

マージされていないブランチを削除しようとすると、エラーで怒られます。そんなときは、「-D」オプションを、強制的に削除します。--forceのショートハンドというわけですね。上記の3つどれでもOKです。

リモートブランチの削除

リモートブランチの削除です。git branch のオプションではないので、注意が必要です。

// リモートブランチを削除する
git push --delete <remote branch name>

// リモートブランチを削除する(同義)
git push origin :<remote branch name>

上記2つは同義です。

2つめの意味がややわかりにくいですが、git pushコマンドには <ローカルのブランチ名>:<リモートのブランチ名>という「: (コロン)」で区切るオプションが与えられる事になっています。

上記の削除コマンドでは、<空文字>:<リモートブランチ名>という表現で「何もない」をプッシュすることで、「削除する」コマンドという解釈になるようです。

この:<リモートのブランチ名>というのはオプショナルで、指定しない時(通常は指定しないことが多いと思います)の振る舞いは<ローカルのブランチ名>と同じ名前のリモートブランチ名がプッシュの対象になるようです。

詳しく知りたい方は、マニュアルをどうぞ。

リモート追跡ブランチの削除

リモートブランチとローカルブランチを削除しても、ローカルにあるリモート追跡ブランチはガッツリ残ります。

特に「チームの他の人が誰かリモートブランチを削除した」などのケースでも、ほっておいてもローカルのリモート追跡ブランチには、その削除は反映されません。

リモート追跡ブランチも、ちゃんと削除するコマンドが用意されてます。

// リモートトラッキングブランチを削除する
git branch -dr <remote tracking branch>

// 上記の分解したやつ
git branch -d -r <remote tracking branch>
git branch --delete -remotes <remote tracking branch>

「-r」は「--remotes」のショートハンドですね。リモートブランチを消したら普通リモート追跡ブランチもいらない事がほとんどなので、こちらも忘れずに削除しておきましょう。

gitブランチ削除に関する参考リンク

流石にgitマニュアルは、なんでも書いてあります。

以上になります。

無事、git でブランチを削除してスッキリできたでしょうか?

快適なgitライフを。

閉じる