🤖

local git レポジトリでマージ済みのブランチを全て消す

2023/02/20に公開

develop, master, main 以外でマージ済みのブランチを全て消すコマンドはこちら

git branch --merged | egrep -v 'develop|master|main' | xargs git branch -d

merge 済みのブランチを検索し、指定した文字列を含まない行を egrep -v で選択し、git branch -d を実行する。

エイリアスを定義する

覚えらんないのでカスタムコマンド(エイリアス)を作っておく。

alias コマンド名="実行したいコマンド" みたいに書いて実行すると、カスタムコマンドが定義できる。

zsh 環境(macOS とか)の場合は ~/.zshrc に以下を書いておくと、Terminal を立ち上げた時に自動的に記述内容を実行してくれるので、使いたいコマンドはここに書いたりする。(環境構築用に呪文を ~/.zshrc に書いたりするのはこういう理由。rc は Run Commands の略。)

~/.zshrc
# alias
alias delete_merged_branches="git branch --merged | egrep -v 'develop|master|main' | xargs git branch -d"

というわけで delete_merged_branches コマンドが Terminal で使えるようになりました。名前がなげーよというのであればお好みでコマンド名を変えてくださいまし。ただ、忘れないようにわかりやすいコマンドにしておいた方がいいかなというのと、システムコマンドとかと被ったりしそうなので、あんまり短い名前はオススメできないです。

感想

  • エイリアス使いすぎると環境変わった時に大変とはよく聞きます
    • rc 系のファイル (dotfiles) を git で管理するのもよく聞くしやってたけど、新しい環境の時は一から構築しなおいしたい気持ちもあったりしてやらなくなっちゃった
  • あと ls -l とかを ll にするとかもよく聞くけど、時間短縮効率があまり高くない気がする
  • あんまりエイリアス使わずスラスラを書ける人はソフトウェアエンジニアリング力が高い気がする
    • ワンライナー芸、シェル芸、ワンライナー職人、シェル芸職人と言われる
    • 職人の書いた記事は大変参考になります

Discussion