¿Cómo resuelvo los conflictos de selección selectiva con sus cambios?

110

Mi git cherry-pick FOOprodujo un conflicto.

Podría revisar los archivos en conflicto y eliminar las líneas entre <<<<<<<y =======, y los marcadores de conflicto en sí mismos, pero espero que haya una manera más fácil.

Creo que el svnequivalente fue optar theirs-conflictpor resolver.

¿Cómo hago esto git?

No quiero, git checkout --theirs <file>ya que parece producir el mismo resultado que en git checkout foo <file>lugar de simplemente git diff FOO~..FOO <file>aplicarse.

antak
fuente

Respuestas:

196

Primero debe deshacer su selección de cereza, intente ejecutar esto

git cherry-pick --abort

En segundo lugar, intente hacer una selección selectiva, pero en este momento obtendrá sus cambios no los suyos, así que haga esto:

git cherry-pick --strategy=recursive -X theirs {Imported_Commit}
elhadi dp ıpɐɥ ן ǝ
fuente
6
Hay un poco más de información sobre lo que están haciendo esos conmutadores en stackoverflow.com/questions/2268172/…
antak
27
He intentado esto con exactitud: git cherry-pick --strategy=recursive -X theirs 1b92440y todavía estoy incitan para un conflicto no resuelto: Unmerged paths: deleted by them: (file path). ¿Alguna idea?
pilau
Una forma más comprensible de restablecer después de una selección / fusión fallida es usargit reset --merge
Pylinux
10
git cherry-pick --abort- esta es la forma recomendada de deshacer la operación de selección selectiva.
tommyk
No tengo una -Xopción en git cherry-pick. git 1.7.2.3.
Frank