tipos tag qué existen etiquetas crear conflictos git git-am git-apply

git - tag - Al aplicar un parche, ¿hay alguna forma de resolver los conflictos?



resolver conflictos git (4)

Estoy en Windows.

Por varias razones, tenemos múltiples instancias de git de diferentes ramas de svn.

Muchas veces quiero solucionar un problema en el repositorio A, generar un parche y aplicarlo al repositorio B. Esto funciona bien, excepto si hay conflictos.

Cuando vuelva a basar, simplemente haga clic con el botón derecho en la carpeta y use tortioseGit y seleccione la opción resolver. Esto trae una buena guía para dejarme trabajar a través de mis conflictos.

¿Hay alguna forma de lograr esto con trozos de parche rechazados?

Aquí está mi enfoque actual para crear / aplicar los parches

git format-patch master --stdout > c://patch//file.patch git apply --reject --ignore-space-change --ignore-whitespace c://patch//file.patch


Mi enfoque es:

  • Crear una "Integración" -Branco donde los archivos son idénticos
  • Aplicar el parche a esta rama de integración
  • Fusionar o volver a establecer la base para dominar (no sé si la rebase es útil aquí, porque no sé qué sucederá cuando aplique más parches)

Para generar su parche haga lo siguiente:

git format-patch --stdout first_commit^..last_commit > changes.patch

Ahora cuando esté listo para aplicar los parches:

git am -3 < changes.patch

el -3 hará una fusión de tres vías si hay conflictos. En este punto, puede hacer una git mergetool si quiere ir a una interfaz git mergetool o simplemente combinar manualmente los archivos usando vim (la resolución de conflictos estándar <<<<<< , |||||| , >>>>>> )


Si con frecuencia se encuentra con el mismo conjunto de conflictos al aplicar parches, rebase o fusionar, puede usar la función git rerere (reutilizar la resolución grabada). Esto le permite predefinir cómo se deben resolver los conflictos en función de cómo los resolvió en el pasado. Consulte http://git-scm.com/blog/2010/03/08/rerere.html para obtener detalles sobre cómo funciona esto.


TortoiseGit tiene una función de fusión que puede abrir archivos de parche.

Hay una foto de esto here .