Estoy en windows.
Por varias razones, tenemos varias 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.
Al reajustar, simplemente hago clic derecho en la carpeta y uso tortioseGit y selecciono la opción de resolución. Esto muestra una interfaz gráfica de usuario agradable que me permite resolver mis conflictos.
¿Hay alguna forma de lograr esto con fragmentos 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
git mergetool
y hacer una combinación de 3 vías con la interfaz gráfica de usuario de tu elección (soy parcial a kdiff en Windows) ...Respuestas:
Para generar su parche, haga lo siguiente:
Ahora, cuando esté listo para aplicar los parches:
la
-3
hará un fusión a tres bandas si hay conflictos. En este punto se puede hacer unagit mergetool
si quieres ir a una interfaz gráfica de usuario de forma manual o simplemente combinar los archivos usando vim (la norma<<<<<<
,||||||
,>>>>>>
resolución de conflictos).fuente
--ignore-whitespace --ignore-space-change
agit am
también. Tuve fusiones triviales que no se llevaron a cabo sin él.git apply -3 changes.patch
parece funcionar para mí tambiéngit mergetool
. En su lugar, tuve que encontrar la confirmación base del parche original usado, aplicar encima de eso (afortunadamente mi repositorio tenía esto) y luego rebase.git am -3
tampocogit apply -3
soltaré marcadores de conflicto en mis archivos, aunque recibo mensajes comoApplied patch to 'configure.ac' with conflicts.
yerror: patch failed: ...
. Esto está encendidogit 2.17.1
. ¿Quizás cuando algunos archivos no se pueden parchear en absoluto, git retrocede?Si con frecuencia se encuentra con el mismo conjunto de conflictos al aplicar parches, reajustar 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.
fuente
TortoiseGit tiene una función de combinación que puede abrir archivos de parche.
Hay una foto de ella aquí .
fuente
Mi enfoque es:
fuente