プロジェクトのマスターブランチを更新していました。だから私は機能ブランチfeature/branch-A
をチェックアウトし、master
が起源で最新であることを確認した後にmaster
をマージしました。私はマスターをチェックアウトし、feature/branch-A
をmaster
にマージしました。マスターブランチが正しくマージされませんでした
問題がfeatire/branch-B
から、他の仕事は、そのブランチにマージされているためmaster
分岐がcommit C
に今あるのに対し、feature/branch-A
がmaster commit A
(マスターの過去のバージョン)に基づいて作成されたものです。 master
ブランチ上のcommit C
には、変更されて名前が変更されたcommit A
のファイルがあります。私がmaster
をfeature/branch-A
にマージすると、feature/branch-A
のcommit A
の履歴が上書きされてしまいますが、その逆のことがあります(この時点でファイルはmaster
ブランチに反映されていません。これはcommit c
です)。だから今私はfeature/branch-A
からmaster
のマージで更新されたと確信しているが、実際にmaster
の内容はfeature/branch-A
の更新に失敗しました。今度はmaster
をチェックアウトしてfeature/branch-A
をマージすると、master
の内容は、現在のバージョンのマスターがcommit C
ではなく、feature/branch-A
からの変更「コミットA」を反映して変更されます。
私は機能がmaster
の日付現在のバージョンを表すために支店、commit c
アップ希望をチェックアウトした一方でfeature/branch-A
へmaster
をマージすることを考えました。
私の質問は、なぜこの現象が発生するのですか?
おそらくここで役立つもの:https://stackoverflow.com/questions/14894768/in-git-how-is-fetch-different-than-pull-and-how-is-merge-different-than- rebase – GaTechThomas
フィーチャーブランチは、24日前からのコミットである過去のバージョンのマスターブランチから作成されました。現在のバージョンのMasterには、名前が変更されたファイルと変更されたファイルが24日前からありますが、この機能をマスターに統合すると、ブランチが最初に作成されたときのバージョンに復帰しました。マスタからフィーチャへのマージが発生した場合、マスタブランチはフィーチャの変更を上書きしてはいけませんか? – Xochi