「git pull --all」はすべてのローカルブランチを更新できますか? 質問する

「git pull --all」はすべてのローカルブランチを更新できますか? 質問する

多くの場合、マスター、ステージング、本番の少なくとも 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ほぼ同じことを行います。

おすすめ記事