gitで最新ブランチ取り直すの毎回めんどくさいよー
事情があって、自宅、会社と日によって作業マシンが変わる生活を送っているのですが、朝毎回リポジトリの取り直し作業があります。
複数リポジトリ、複数ブランチとあって、毎朝最新にするために1つ1つ確認しながらpullしているのですが……やってられません!午前中これだけで終わる!
そんなわけで以前作った一括プルするシェルを使っているんですが、色々問題があったので修正しました。
これまであった問題
- リモートブランチを全てチェックアウトしちゃっていた。
- どっか別の枝にリベースされたブランチがpullできない。
- ローカルブランチの方がリモートよりコミット進んでいるのにpullしようとしちゃう(まあ失敗するだけで実害はないけど)
特に人がやってた見る必要のないブランチをチェックアウトするのはマジで要らんかったです。
いつの間にかリモートではなくなっていてもローカルにポツンと残る知らないブランチ…それを削除する手間…マジで要らんかったです。
あとpullできなくて枝が分かれてしまったやつは勝手に合わせるのは危ないので普通は追随しません。ローカルの方が進んでいるかもしれないですし。
それはさすがに目で先に確認しておいたほうがよいです。
なので、まずは普通にこのgit-pull-origin-all.shを叩いた後で、自分の未pushなブランチがあればpushして、どのブランチもリモートに合わせてOKだなーと判断できたら、--force付きで叩いてください。
ただ、自分とリモートブランチの枝が変わっちゃっていて、且つ自分の方が進んでいるのに--forceしたら悲劇ですので、そこはマジでご注意ください。リモートブランチから順当にローカルブランチが進んでいる場合は--forceを行っても、
ローカルの方が進んでいるのでリモートに合わせません。
と出るのでその点はご安心を。