1. ホーム
  2. git

[解決済み] git pull --all "でローカルブランチをすべて更新できますか?

2022-03-18 22:35:24

質問

私はしばしば、少なくとも3つのリモートブランチ(master、staging、production)を持っています。私はそれらのリモートブランチを追跡する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"をして、現在の作業ブランチを更新(早送りやマージ)するようですが、他のローカルブランチは更新されません。

まだ、手動で各ローカルブランチに切り替えて更新するのに行き詰っています。

解決するには?

について説明した動作は pull --all は予想通りですが、必ずしも有用とは言えません。このオプションは git fetch に渡され、必要なものだけでなくすべてのリモートからすべての ref を取得するようになります。 pull で、適切な単一ブランチをマージ (あなたの場合はリベース) します。

他のブランチをチェックしたい場合は、チェックアウトすることになります。そして、そう、マージ(とリベース)することで 絶対に は作業ツリーを必要とするため、他のブランチをチェックアウトせずに行うことはできません。お望みなら、記述した手順をスクリプトやエイリアスにまとめることもできますが、私はコマンドを && 万が一、どちらかが失敗しても、そのまま続行できないようにするためです。