9

重複の可能性:
Git - 選択したファイルでマージの競合と手動マージを強制する方法

安定したコードと新しい機能の 2 つのブランチをマージしようとしています。

マージ機能が機能していません。競合が表示されることもありますが、多くの場合、競合を通知せずにファイルを上書きするだけで、おそらく正しいバージョンであると考えられます。

この上書きをブロックして、競合するすべての行を表示することはできますか? git diff を使用して、その拡張性を把握しようとしましたが、安定版ブランチでかなり広範なデバッグを行ったため、数千行あります...したがって、可能であればマージ機能を機能させる必要があります。 .

ですから、私たちは少し厄介な状況に陥っています。すべての助けに大いに感謝します。

4

2 に答える 2

2

あなたができることは、マージを次のように実行することです:

git merge --no-commit --no-ff your-branch

これにより、マージ コミットが作成されたり、マスターが早送りされたりすることはありませんが、マージされたファイルが作業ディレクトリに配置されるだけです。変化を調べることができます。満足したら、git commitまたは元に戻すことができますgit reset --hard

于 2012-12-20T16:45:49.567 に答える
2

あなたの問題を再現する方法がわからないので、推測する必要があります。

私の経験では、通常、マージを行う前に a を行うことで、git マージに関する混乱を減らすことができますgit pull --rebase。これにより、リモートから最新の変更が取り込まれ、それらの変更がマージされます。ただし、変更を以前のコミットにマージする場合は、これを行わないでください。pullいずれにせよ、問題が発生した場合に元に戻せるように、 を実行する前に最新のコミット ID を書き留めておいてください。

マージ自体に来て、 を使用git merge --no-ff --no-commitしてマージがコミットされないようにすることができます。これにより、ご希望の完全な競合レポートが得られるかどうかはわかりませんが、(シミュレーション モードのように) マージ結果を調べることができます。結果が気に入らない場合は、 を使用してマージを元に戻すことができますgit reset --hard

于 2012-12-20T16:37:23.937 に答える