0

Git は単純なケースでマージに失敗しますが、マージ ツールを実行しても競合は明らかにならず、マージ ツールを閉じるだけで正しいマージ結果が得られます。

私は git バージョン 1.7.10.msysgit.1 を使用していますが、マージに関してこの奇妙な問題があります。

「123」を含むファイルがあり、ブランチ A とブランチ B の両方が上記のバージョンのファイルから生成されます。

ブランチ B で、ファイルの 2 行目に「改行」を追加して、「123 改行」を取得します。

ブランチ B i で、「123」を「12345」に変更します。

ブランチAで、「新しい行」を追加したBの変更をチェリーピックします

ブランチ A で B とマージし、テキスト エディターでファイルを開くと "123" "12345" で競合が発生しますが、マージ ツールを起動して何も変更せずに閉じると、競合は自動的に解決されます。継続する。

私が疑問に思っているのは、ブランチAの最初の行に誰も触れていないのに、ファイルの最初の行に競合があるとgitが考えるのはなぜですか.

これらの状況で git を自動マージする方法はありますか?

4

1 に答える 1

0

これは、BからAへの変更をチェリーピックしたためです。これは、行を変更したコミットを本質的に「コピー」したものです。これで、2つのブランチの共通の祖先の後に、2つの異なるコミットによって同じ行が変更されました。したがって、gitは、どのコミットが必要なコミットであるかを知ることができないため、競合を通知して選択できるようにします。

于 2012-06-27T13:56:25.060 に答える