開発ブランチをマスターにマージする 質問する

開発ブランチをマスターにマージする 質問する

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フラグを使用できます。これは通常、(最後のステップ) にマージする場合にのみ役立ちます。ワークフローで (最初のステップ)に複数回マージする必要がある場合があり、これらのためにコミット ノードを作成してもあまり役に立たない可能性があるためです。developmentmastermasterdevelopment

git merge --no-ff development

おすすめ記事