マージ競合を検出するコマンドはgit merge
です。 git merge
、任意に--no-commit
、任意には分離したHEADで実行する。
競合が発生した場合は、git merge
がゼロ以外のステータスで終了します。競合がなければ、git merge
はゼロ状態で終了します。 --no-commit
で実行すると、Gitはいずれの場合もコミットを行いません。これを実行しなければ、Gitは現在のHEADに対してマージコミットを行います。 HEADがデタッチされている場合、このコミットはHEADにのみ影響します。
分離HEADを使用した場合、HEADを元のブランチに再接続するか、コミットできるようになりました。
--no-commit
を使用した場合は、マージが成功したか失敗したかにかかわらず、git merge --abort
を実行するだけで済みます。
したがって、最も簡単なコマンドシーケンスはgit merge --no-commit
を実行し、終了ステータスを保存してからgit merge --abort
を実行することです。
すべての場合、Gitはマージ処理中にインデックスと作業ツリーを使用するため、Gitがその期間全体で使用するのに安全であることを確認する必要があります。 (特に、インデックスと作業ツリーはプロセスの開始時に「クリーン」でなければなりません。最後にはクリーンになりますが、後ろにマージドライバがなければクリーンになります)。
node.jsからgit merge
の終了ステータスを取得してください。私は分かりません)