2

私のソース コードは mercurial リポジトリにありますが、マスター ブランチは mercurial から git リポジトリに移動しました。現在の git master ブランチ ヘッドと私の水銀バージョンには競合があります。git master は新しいリポジトリとして作成され、元の mercurial リポジトリから派生したものではありません。自分の変更をマスター ブランチの変更とマージするにはどうすればよいですか?

マスターから新しいブランチを作成し、Mercurial ソースでソースを上書きしてマスターとマージすると、git は競合を検出しません (共通の祖先バージョンがないためだと思います)。

4

1 に答える 1

2

私はそうは思わないでしょう。マスターから新しいブランチを作成すると実際には共通の祖先があり、その共通の祖先は実際にはマスター自体です。これは、master からの早送りであるため、マージ結果が実際には新しいブランチであることを意味します。

履歴のない (または master との関係のない) 新しいブランチを作成すると、期待どおりのマージ競合が発生します。新しい孤立したブランチを作成できます:

git checkout --orphan new_branch

ソースをmercurial からコピーすると、master とマージできるようになります。2 つのブランチ間で同一でないファイルは、競合としてマークされます。

于 2013-03-05T03:20:48.197 に答える