Gitで、リモートにあるブランチを削除する方法

リモートブランチhogeを削除する方法

リモートにあるブランチの一覧を表示
$ git branch -r
  origin/HEAD -> origin/master
  origin/hoge
  origin/fuga
リモートブランチhogeを削除
$ git push --delete origin hoge
# またはコロン記法で、
$ git push origin :hoge
削除されたか確認
$ git branch -r
  origin/HEAD -> origin/master
  origin/fuga

解説

$ git push --delete origin hoge
普通はこっちを使えばよいでしょう。
コロン記法と動作は同じです。
$ git push origin :hoge
この構文の覚え方を説明します。

2つポイントがあります。
  • なぜ"git push"でブランチが削除されるのか。
  • なぜブランチ名を":hoge"と書くのか
なぜ"git push"でリモートブランチが削除されるのか。

考え方としては、「"無"を送りつける」「nullで上書き」です。
Linuxいう/dev/null みたいなものです。
なぜブランチ名を":hoge"と書くのか

よい質問です。
そもそも、git pushの構文を確認しましょう。

git push [remotename] [localbranch]:[remotebranch]

普通pushするとき、このようにしますよね。
$ git push origin hoge
これは、正確に書くとこうなんです。
$ git push origin hoge:hoge
hoge:hoge は、左がローカルブランチ名、右がリモートブランチ名です。

ここでローカルブランチ名をなしにすると、「nullで上書き」つまり「削除」になります。

リモートブランチhogeを削除
$ git push origin :hoge

なお、リモートブランチを削除してもローカルブランチ"hoge"には影響ありません。
ローカルブランチ"hoge"を消したい場合は別途削除しましょう。

ローカルブランチhogeを削除
$ git branch -d hoge
参考
Git で不要になったローカルブランチ・リモートブランチの削除 - sotarokのお勉強
Pro Git - Pro Git 3.5 Git のブランチ機能 リモートブランチ

追記

--deleteオプションで消せることがわかったので記事を修正しました。
コロン記法より直感的なのでおすすめです。
カテゴリ:

人気記事