単一ファイルのマージをやり直す


112

私は大規模なマージの最中です。以前はgit mergetoolすべての競合を解決してきましたが、マージが最初に問題がないことを確認したかったため、まだコミットしていません。

1つのファイルの競合を解決しているときに間違いを犯したことがわかりましたgit mergetool。そのファイルでの競合解決をやり直したいと思います。これは大きなマージなので、他のすべてのファイルでマージをやり直さないようにしたいと思いますgit merge --abort

ファイルを手動で編集できることはわかっていますが、これはかなり退屈で、git mergetool操作をやり直すだけの方がはるかに簡単です。これは可能ですか?


回答:


181

間違った場所を探していたようです。解決策は非常に単純であることがわかりました。

git checkout -m <file>

これにより、ファイルが競合状態に戻ります。その後、実行git mergetoolしてマージをやり直すことができます。


2
この種は私のために働いた。インデックスはマージされた状態になりましたが、mergetoolは未処理のマージがあるとは考えていませんでした。viを使用してマージを実行しただけですが、とにかく変でした。
Chris Cleeland、2015年

1
ありがとうございました!これがまさに必要なことです。ちなみに、viと手動でマージすることは常に喜びであり、完全に満足のいくものです。左にシフトしたり右にシフトしたりしても、マージが期待どおりに進んでいるという確信は得られませんでした
asgs

1
この重複する質問の回答には、(同じ回答を含む)いくつかの役立つ追加の詳細があります。
Joshua Goldberg

-4

ファイルはいつでも手動で編集できます。

を使用している場合はgit merge --no-commit、(自動および半自動の後で)準備されたコミットをマージするだけです。

安全にファイルを編集し、完全に満足したときにのみコミットできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.