2017-11-30 19 views
1

プロジェクトのマスターブランチを更新していました。だから私は機能ブランチfeature/branch-Aをチェックアウトし、masterが起源で最新であることを確認した後にmasterをマージしました。私はマスターをチェックアウトし、feature/branch-Amasterにマージしました。マスターブランチが正しくマージされませんでした

問題がfeatire/branch-Bから、他の仕事は、そのブランチにマージされているためmaster分岐がcommit Cに今あるのに対し、feature/branch-Amaster commit A(マスターの過去のバージョン)に基づいて作成されたものです。 masterブランチ上のcommit Cには、変更されて名前が変更されたcommit Aのファイルがあります。私がmasterfeature/branch-Aにマージすると、feature/branch-Acommit 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-Amasterをマージすることを考えました。

私の質問は、なぜこの現象が発生するのですか?

+1

おそらくここで役立つもの:https://stackoverflow.com/questions/14894768/in-git-how-is-fetch-different-than-pull-and-how-is-merge-different-than- rebase – GaTechThomas

+0

フィーチャーブランチは、24日前からのコミットである過去のバージョンのマスターブランチから作成されました。現在のバージョンのMasterには、名前が変更されたファイルと変更されたファイルが24日前からありますが、この機能をマスターに統合すると、ブランチが最初に作成されたときのバージョンに復帰しました。マスタからフィーチャへのマージが発生した場合、マスタブランチはフィーチャの変更を上書きしてはいけませんか? – Xochi

答えて

1

"元のブランチの古いバージョンがマージ後に現れました"とはどういう意味でしょうか。あなたの現在のgitの状態を見てみたい場合は、私は

gitk --all & # For Bash shell 

gitk --all # For Windows powershell 

をgitk使用することをお勧めします これは、Uに以下のことをチェックするのに便利なGUI与える:マージが完了した場合

  • チェックを。
  • リモートブランチも更新されているかどうかを確認します。
  • あなたが現在正しいブランチにいて、コミットしていることを確認してください。
+0

これはコメントでなければなりません – yorammi

+0

このことについて申し訳ありませんが、私はコメントを追加する評判がありません – guoguo616

+0

私は明確化のために私が受け取った質問に答えるためにオリジナルの質問を更新しました。 – Xochi

関連する問題