1

私はこれに続いて 、特定のファイルのみの変更をチェリーピックするためにgitを使用してコミットをチェリーピックしました。

チェリーピックの後、一部のファイルで競合が発生しました。つまり、ファイルには次のようなセクションがあります。

<<<<<<<<<<<<
>>>>>>>>>>>>

通常、git mergeでは、最愛のp4mergeを使用して競合を解決します。これは、非常に直感的でエラーがありません。

しかし、cherry-pickを使用すると、git mergetoolを使用すると、ファイルにファイルが含まれていても、マージする必要はないと表示<<<<<<されます。そのため、競合を手動で編集して解決する必要がありました。

では、どうすれば競合が存在することをgitに知らせることができますか?

ありがとうヤン

4

1 に答える 1

0

git cherry-pick競合が原因で失速した場合、発砲git mergetoolすると競合が発生します。それは、何か他の問題が発生したことを意味するものではなく、Git が競合が既に解決されていると何らかの形で判断したことを意味します。

を実行するgit blame -L '/^<<<</,/^>>>>/' -- {filename}と、変更マーカーの間にファイルに注釈が付けられ、それらのマージ マーカーが導入された場所が示されます。2 つの可能性があります。

  • 変更マーカーは「まだコミットされていません」とマークされます。この場合、Git は、 の呼び出しが失敗したgit mergetoolか、疑わしいgit add.

    これから回復する唯一の方法は、チェリーピックを中止して( を使用してgit cherry-pick --abort)再試行することですが、より良い代替手段があるかもしれません。

  • 変更マーカーは、特定のコミットでマークされています。この場合、誰かがコミットでばかげています。与えられたコミットを見ると、誰がコミットしたか、そしてそれが何であったかがわかります。どこから来たのかを調べて再解決することで回復できる場合があります。

于 2012-08-24T08:56:56.343 に答える