8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Tips: Vimを開くたびにローカルの不要なgitブランチを削除する

Last updated at Posted at 2022-02-16

これは何

gitのブランチは、気を抜くと膨大になりがちです。そのままでも実害はないですが、ブランチが増えすぎると、checkoutなどで該当のブランチを探すのも面倒になるため、できれば不要なものは整理しておきたいです。
とはいえ毎回手動で不要なブランチの削除を行うのも面倒なので、僕は使っているエディタのVimの起動スクリプトで不要なローカルブランチを削除するようにしていいます。
この記事ではその方法を短文ですが紹介します。

結論

以下のコードをvimrcに記載すれば完了です。

call system("git branch -d $(git branch --merged | grep -v main | grep -v master | grep -v '*')")

コマンドの説明

call

callはVim scriptで関数を呼び出すための構文です。今回はsystemという関数を呼び出しています。

system

systemはVim script内でシェルコマンドを実行するための関数です。これを用いるとシェルコマンドをVim script内で実行できます。今回はgit branch -d $(git branch --merged | grep -v main | grep -v master | grep -v '*')というコマンドを実行しています

git branch -d $(git branch --merged | grep -v master | grep -v '*')

このシェルコマンドは、大きくふたつ分けることができます

  1. git branch -d
  2. git branch --merged | grep -v main | grep -v master | grep -v '*'

一つ目のコマンドは「指定されたブランチを削除する」コマンドです。
二つ目のコマンドは「不要なブランチを指定洗い出す」ためのコマンドになります。
二つ目のコマンドで洗い出したブランチを、一つ目のコマンドで削除している、という流れになります。

二つ目のコマンドは以下のようなことをしています。

  1. マージされたブランチの一覧を表示する
  2. ブランチの一覧から以下のブランチを取り除く
    • main
    • master
    • チェックアウトしているブランチ

git branch -d $(git branch --merged | grep -v master | grep -v '*')で、この条件に合致するブランチのみを削除することができます。

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?