GitHub リポジトリにはmaster
、とという 2 つのブランチがあります。図に示すように、すべての開発は開発ブランチで行っています。development
git branch development
git add *
git commit -m "My initial commit message"
git push -u origin development
development
ここで、ブランチのすべての変更を にマージしたいと思いますmaster
。現在のアプローチは次のとおりです。
git checkout master
git merge development
git push -u origin master
私が従っている手順が正しいかどうか教えてください。
ベストアンサー1
私は通常、最初のmaster
ブランチにマージしてdevelopment
、競合が発生した場合にブランチdevelopment
自体で解決し、master
クリーンな状態を維持するようにしています。
(on branch development)$ git merge master
(resolve any merge conflicts if there are any)
git checkout master
git merge development (there won't be any conflicts now)
2 つのアプローチにそれほど大きな違いはありませんが、マージした後でブランチをまだマージしたくないmaster
、またはマージする前にまだ作業が残っていることに気付いたため、最終的な作業までそのままにしておく傾向がありますmaster
。
編集: コメントより
誰がいつマージを行ったかを追跡したい場合は、マージ中に--no-ff
フラグを使用できます。これは通常、(最後のステップ) にマージする場合にのみ役立ちます。ワークフローで (最初のステップ)に複数回マージする必要がある場合があり、これらのためにコミット ノードを作成してもあまり役に立たない可能性があるためです。development
master
master
development
git merge --no-ff development