0
0

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 1 year has passed since last update.

Gitブランチの一括削除! 煩雑な作業を一行で解決する方法

Posted at

はじめに

Gitを使っていると、特にフィーチャーブランチを頻繁に作成する場合、ブランチの管理が複雑になりがちです。ブランチが増えてくると、それらを一つ一つ手動で削除するのは大変ですよね。今回は、マージ済みのGitブランチを一括で削除する方法と、Zsh環境でのalias設定方法について解説します。

必要なもの

  • Gitがインストールされていること
  • Zshがインストールされていること(alias設定の部分で必要)

ブランチの削除

まずは、マージ済みのブランチを表示するコマンドから始めましょう。

git branch --merged

このコマンドは、現在のブランチから見てマージ済みのブランチの一覧を表示します。

次に、このリストから master ブランチや他の保持したいブランチを除外し、残りのブランチを削除します。以下のコマンドは masterdevelop ブランチを除外し、残りのマージ済みブランチを削除します。

git branch --merged | egrep -v "(^\*|master|develop)" | xargs git branch -d

ここで、egrep -v "(^\*|master|develop)" の部分は、マージ済みブランチのリストから現在のブランチ(*で表示される)、master ブランチ、develop ブランチを除外します。保持したいブランチが他にもある場合は、この部分に名前を追加してください。

最後に、xargs git branch -d は、フィルタリングした各ブランチに対して git branch -d コマンド(ブランチの削除コマンド)を実行します。

Zsh環境でのalias設定

この一連のコマンドをaliasとして設定すると、コマンドを一度打つだけでマージ済みのブランチを削除できます。これにより、コマンドの打ち間違いを防いだり、タイピングの手間を減らすことができます。

Zsh環境でaliasを設定するには、~/.zshrc ファイルに以下の行を追加します。

alias delete_merged_branches="git branch --merged | egrep -v \"(^\*|master|develop)\" | xargs git branch -d"

この設定を保存した後、新しいターミナルセッションを開始するか、以下のコマンドを実行して .zshrc ファイルの変更を反映させます。

source ~/.zshrc

これで、delete_merged_branches というコマンドをターミナルで実行すると、マージ済みのブランチが削除されます。

注意事項

Gitでブランチを削除するときは注意が必要です。削除操作は取り消しできませんので、削除するブランチが本当に必要ないものであることを確認してから実行してください。また、このコマンドはローカルのブランチを削除します。リモートのブランチを削除するには、ブランチ名を指定して git push origin --delete <branch_name> を実行する必要があります。

終わりに

今回は、マージ済みのGitブランチを一括で削除する方法と、Zsh環境でのalias設定方法について解説しました。これにより、ブランチの管理がより楽になり、効率的な開発作業が可能になることでしょう。それでは、Happy Git-ing!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?