2016-06-13 9 views
1

私のチームは最近Perforceを使ってソース管理のためにGitに変換しました。私が良い答えを見つけることができない1つの質問は、起点からの変更の変更を適切に統合する方法です(起点である2つの開発者がブランチにコミットしている)。Gitでマスターをリモートトラッキング機能のブランチにマージ

私はマスターからマージを実行しようとしましたが、現在のブランチで変更したすべてのファイルを表示するマージコミットが表示されます。これは期待されていますか?

私のチームはコマンドラインの代わりにSourceTreeを使用しています。

+2

はい、マージは2つの親を持つ新しいコミットを作成し、両方のブランチの履歴をマージします。両方のブランチで同じファイルが変更された場合、他のブランチの変更をインポートすることによって、これらのファイルを変更したコミットが表示されます。 – Useless

+0

これは真のマージまたは非高速フォワードマージです。 BranchAをBranchBにマージすると、BranchAのすべてのコミットがBranchBに導入されます。 BranchBの頭がBranchAの頭の祖先である場合、代わりに早送りマージが行われます。オプション '--no-ff'は、早送りの場合でも常にマージを真のマージとして解決します。 BranchAのコミットの一部だけが必要な場合は、代わりに 'git cherry-pick'または' git merge'を使うことができます。 – ElpieKay

答えて

1

チームの複数のメンバーが機能ブランチを使用している場合は、mergeが最適です。それ以外の場合はrebaseを使用することをお勧めします。

マージはデフォルトでは早送り(--ff)であり、可能な場合はいつでも、高速で転送されません(--no-ff)。

早送りされていない場合は、マージされたブランチについて(親が参照をコミットする)ことを知らせるメッセージとともに、追加のマージコミットを行います(あなたの場合のように)。 (GitHub様およびツール)

一部people--no-ffを好むは、読みやすさとgitのログを明確にするためにマージします。

関連する問題