目次
はじめに
ターミナルでGitコマンドの補完機能を使っているのだが、リモートで削除したはずのブランチが補完候補にでてきて鬱陶しかったので調べてみたら、git prune
コマンドというのを見つけた。
ブランチが削除された後のローカルリポジトリ
Gitの仕様として、ブランチがリモートリポジトリで削除されても、そのブランチはローカルリポジトリに残るようになっている。これはローカルとリモートが自動的に同期されないことで、誤って重要なブランチを削除してしまった場合でも、完全に失われるのを防ぐためらしい。
しかし、そのため手動で削除しないと古いブランチがローカルリポジトリにどんどん溜まっていく。
Git Pruneとは
ここでgit prune
の出番だ。git prune
を使用することでリーカルリポジトリからすでにリモートに存在しないブランチを削除することができる。
Git Pruneの使い方
git fetch --prune
このコマンドは、ローカルリポジトリにリモートリポジトリの最新情報を取得し、リモートに存在しないブランチを削除する。つまり、すでにリモートで削除されているブランチをローカルからも削除する。
ただし、削除されるブランチは追跡ブランチ(tracking branch)だけで、ローカルで作成されたブランチは影響を受けない。
ちなみに次のようなコマンドを実行すると、最新情報の取得は行わずに、ローカルにあるがリモートには存在しないブランチを削除する。
git remote prune <remote>
まとめ
不要なブランチが補完候補に出てこなくなって嬉しい。新しくGitコマンドも知れて勉強にもなった。
コメント