多くの場合、マスター、ステージング、本番の少なくとも 3 つのリモート ブランチがあります。これらのリモート ブランチを追跡する 3 つのローカル ブランチがあります。
すべてのローカルブランチを更新するのは面倒です。
git fetch --all
git rebase origin/master
git checkout staging
git rebase origin/staging
git checkout production
git rebase origin/production
「git pull -all」だけを実行できればよいのですが、うまくいきません。「fetch --all」を実行してから、現在の作業ブランチを更新 (早送りまたはマージ) しますが、他のローカル ブランチは更新しないようです。
依然として、各ローカル ブランチに手動で切り替えて更新する作業が残っています。
ベストアンサー1
私はsync
サブコマンドのハブこれを自動化します。alias git=hub
には があるので.bash_profile
、入力するコマンドは次のようになります。
git sync
これにより、一致するアップストリーム ブランチを持つすべてのローカル ブランチが更新されます。man ページから引用:
- ローカル ブランチが古い場合は、それを早送りします。
- ローカル ブランチにプッシュされていない作業が含まれている場合は、それについて警告します。
- ブランチがマージされ、その上流ブランチが削除されたようであれば、それを削除します。
また、現在のブランチ上のコミットされていない変更のスタッシュ/アンスタッシュも処理します。
私は以前、似たようなツールを使っていました。やる気を出すですが、現在はメンテナンスされておらず、git sync
ほぼ同じことを行います。