git - instalar - source tree tutorial español
Cómo interactuar(visualmente) resolver conflictos en SourceTree/git (3)
Estoy usando (Windows) SourceTree para mi proyecto git. Puedo hacerlo en el símbolo del sistema o en el terminal de Linux.
Pero, me pregunto si existe una buena forma de resolver los conflictos de forma interactiva y visual. Por ejemplo, si la extracción detecta conflictos, aparece una herramienta de conflicto basada en la GUI (p. Ej., P4Merge). ¿Es posible?
Siempre estoy resolviendo conflictos manualmente, lo cual es doloroso.
Esto es, por ejemplo, un mensaje de git pull
, de SourceTree.
git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master
From W:/repo/
* branch master -> FETCH_HEAD
Updating 33c07bf..41e0249
error: Your local changes to the following files would be overwritten by merge:
foo.cpp
goo.cpp
goo.hpp
Please, commit your changes or stash them before you can merge.
Aborting
Completed with errors, see above.
Cuando los Resolver Conflictos-> Menú de Contenido están desactivados, uno puede estar en la lista de Archivos Pendientes. Necesitamos seleccionar la opción de archivos en conflicto del menú desplegable (arriba)
Espero eso ayude
Desde SourceTree, haga clic en Herramientas-> Opciones. Luego, en la pestaña "General", asegúrese de marcar la casilla para permitir que SourceTree modifique sus archivos de configuración de Git.
Luego cambie a la pestaña "Diferencia". En la mitad inferior, use el menú desplegable para seleccionar el programa externo que desea usar para hacer los diffs y la fusión. Instalé KDiff3 y me gusta lo suficientemente bien. Cuando termine, haga clic en Aceptar.
Ahora cuando hay una fusión, puede ir a Acciones-> Resolver conflictos-> Lanzar herramienta de fusión externa.
Estoy usando SourceTree junto con TortoiseMerge / Diff, que es una herramienta diff / merge muy fácil y conveniente.
Si quieres usarlo también, entonces:
Obtenga la versión independiente de TortoiseMerge / Diff (bastante antigua, ya que no se envía de forma independiente desde la versión 1.6.7 de TortosieSVN, desde julio de 2011). Enlaces y detalles en esta respuesta .
Descomprima
TortoiseIDiff.exe
yTortoiseMerge.exe
en cualquier carpeta (c:/Program Files (x86)/Atlassian/SourceTree/extras/
en mi caso).En SourceTree, abra
Tools > Options > Diff > External Diff / Merge
. SeleccioneTortoiseMerge
en ambas listas desplegables.Haga
OK
y señale SourceTree a su ubicación deTortoiseIDiff.exe
yTortoiseMerge.exe
.
Después de eso, puede seleccionar Resolve Conflicts > Launch External Merge Tool
desde el menú contextual en cada archivo en conflicto en su repositorio local. Esto abrirá TortoiseMerge, donde puedes lidiar fácilmente con todos los conflictos que tienes. Una vez finalizado, simplemente cierre TortoiseMerge (ni siquiera necesita guardar los cambios, esto probablemente se hará automáticamente) y después de algunos segundos, SourceTree debería manejarlo con elegancia.
El único problema es que automáticamente crea una copia de seguridad, aunque la opción correcta esté desmarcada .