いくつかのローカル ブランチがあり、しばらくしてこれらのブランチをすべて master にマージした後、ローカル master をすべてのローカル ブランチにマージしたいと考えています。
どうやってやるの?
いくつかのローカル ブランチがあり、しばらくしてこれらのブランチをすべて master にマージした後、ローカル master をすべてのローカル ブランチにマージしたいと考えています。
どうやってやるの?
git には単一のコマンドはありませんが、「すべてのブランチに対して」何かを行う方法は、bash セッションでは次のとおりです。
for BRANCH in `ls .git/refs/heads`; do something $BRANCH; done
それはマージに使用できます:
for BRANCH in `ls .git/refs/heads`; do if [[ "$BRANCH" != "master" ]] ; then git checkout $BRANCH ; git merge master ; fi ; done
または、ウィリアムの回答で提案されているように、ブランチをリセットするには:
for BRANCH in `ls .git/refs/heads`; do if [[ "$BRANCH" != "master" ]] ; then git checkout $BRANCH ; git reset --hard master ; fi ; done
ローカル ブランチを削除して再作成できます。これにより、新しいブランチはマスター ブランチのミラーになります。で同じ結果が得られgit checkout branch-name && git reset --hard master
ます。
これにより、一部のコミットが削除される可能性があることに注意してください。それを望まない場合 (おそらくこれらのローカル ブランチにリモート ブランチがあるため)、 : を実行する必要がありgit merge
ますgit checkout branch-name && git merge master
。