質問: gitマージマスターをブランチに 私は新しいブランチで新しい機能を開発しており、私のブランチではかなりの数の変更をコミットしています。マスターブランチを新しいブランチにマージして最新の状態に保ち、新しい機能が完了したらマージの競合があまり発生しないようにすることはできますか?
回答: git merge master または git rebase master のいずれかを使用できます。この場合、私は git rebase を使用します。git rebaseは、機能ブランチの変更がマスターブランチの変更に加えられたかのように作成するため、バージョングラフが単純になります。リベース git rebase manual から例をとると、featureのgit rebase master: a---b---c feature a'--b'--c' feature / --rebase--> / d---e---f---g master d---e---f---g master ただし、git rebaseは、ブランチが配布されていない場合にのみ適しています。そうしないと、古いコミットa、b、cが新しいコミットa '、b'、 c 'と、以前はなかったfとg。ブランチfeatureのgit rebase masterの後の実際の結果は次のとおりです。 ( a---b---c ) / / a'--b'--c' feature / / d---e---f---g master コミットa、b、cはリベース後にぶら下がっていますが、git reflog featureを介して到達可能です。マージ誰かがブランチをプルした場合、またはブランチをどこかにプッシュした場合は、代わりにブランチをマージして、反対側での混乱と余分な作業を回避する必要があります。 上流のリベースからの回復 を参照してください。これはブランチfeatureのgit merge masterの結果です: a---b---c feature a---b---c---m feature / --merge--> / ,---’ d---e---f---g master d---e---f---g master または、ブランチmasterにgit merge featureを置くと、次のようになります。 a---b---c feature a---b---c feature / --merge--> / \ d---e---f---g master d---e---f---g---m master