QA@IT

github で不要になった開発ブランチを消したい

7042 PV

githubで不要になったbranchを消す方法はありますでしょうか

  • こういう自分がすぐ忘れてしまう操作をメモる場所に使ってしまうのはありなんでしょうか? > @ITさま。ダメだとしたら、この画面削除ボタンがないのはなんで?? -
  • ありです。私は自分が投稿したgitのreflogの話を自分で見たりして、なるほどそうだったかと記憶力の悪さを認識したりしています。私だけでなく、ほかの人にも役立つと思います。削除機能は回答が付く前に質問者自身が消す、というのならありかも(というQA@ITについてのメタな会話ができる場所を用意しないと) -
  • 回答がつくまえなら消せるルールに+1。わたしは粗忽者なので、うっかり変な質問書いてしまったときに証拠隠滅したいです -

回答

同僚に教わって、以下のようなエイリアスを~/.gitconfigに作っています。

[alias]
  rmrf = !sh -c 'git branch -d $0 && git push origin :$0'

これをすると、指定したブランチがmaster(というかいまのブランチ)にマージされていればそのブランチを消して、さらに同名のoriginのブランチを消すというスグレモノです。

(ノート向きな発言かもしれません)

編集 履歴 (0)

ブランチがhogeという名前だとします

git push origin :hoge

のようにブランチ名の前に : をつけてpushすればOK。githubのremote名にorigin以外を使っている人(最初に git cloneを使わなかった人)は適時読み替えてください

編集 履歴 (0)
  • 意味的には空のブランチで上書きするということなんでしょうかね -
  • いつかのバージョンからは、`git push --delete origin hoge`でリモートブランチの削除ができるようになっています。(空でpushするより覚えやすいと思います) -
  • あまりやらないと思いますが、ブランチではなくタグを消すときも同じコマンドで消すことができますね。 -

FAQぽいですが

$ git branch -rd origin/hoge

でリモートブランチのみ消せます。
ローカルのブランチは別途git branch -d hogeなどで消す必要があるのでご注意を。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。