ローカルにある不要になった remote-tracking branch を削除する
remote-tracking branch を削除する方法
remote-tracking branch とはローカルにあるリモートレポジトリの追跡ブランチのことです。
私たちが手元で使うローカルブランチは、 git fetch して、このremote-tracking branch をローカルに作成した後に、
ここからさらに git checkout -b して生成されます。
開発が終わり、無事マージした後にこの remote-tracking branch は不要になります。
remote (ex. GitHub上) で削除済みのブランチであれば git remote prune origin
で消せるのですが、
そうでないブランチは消せません。しかし、以下の方法で消すことができます。
%w( origin/test origin/fix origin/fix_typo ).each do |bra| system("git branch -d -r #{ bra }") end
削除前は、 git status, git diff などのコマンドが重かったのですが、実行後は幾分か軽くなりました。
参考にさせていただきました
追記
`git branch --all`.split("\n").map(&:strip).select{|s| s.match(/^remotes\//)}.each do |bra| system("git branch -d -r #{ bra.gsub(/^remotes\//, "") }") end