git 消去済みのリモートブランチがワヤクチャあってリモートリポジトリをリフレッシュしたい
チーム開発していると、気づくともうマージ済みで無くなった origin/feature/xxxx やら origin/hotfix/xxxx やらの残骸がローカルに残り続けてて、同期したいなーてな場合に、originを取り直せば良いってことを六さんから教えてもらったわけ。
でも SourceTreeから気軽に実行したいのでカスタムアクション作っちゃったもんね。
- パスの通ったところに以下の内容で保存。仮に、/usr/local/bin/refresh_remote_repos.sh とする。
- chmod +x /usr/local/bin/refresh_remote_repos.sh
- カスタムアクションに定義
おわり。Macでしか試してないけど。
SourceTreeで実行すると、一瞬 リモートの中身が消えて、しばらくすると origin が作り直されるよ。
実行結果サンプル
2013/12/4更新
- originだけでなく複数のリモートリポジトリに対応した。
2014/3/3更新
- なんてこった!fetchで -p すればキレイになるんだってさ!このシェルさっぱり要らない!超いらない!…って思ったけど origin以外にも持ってる場合は依然一気にリフレッシュできるのは有効なので、remoteコマンドだけなくした。スッキリ!