He intentado msysGit y Git en Cygwin. Ambos funcionan bien por sí mismos y ambos ejecutan gitk y git-gui perfectamente.
Ahora, ¿cómo diablos configuro una herramienta de combinación? (Vimdiff funciona en Cygwin, pero preferiblemente me gustaría algo un poco más fácil de usar para algunos de nuestros compañeros de trabajo amantes de Windows).
Respuestas:
Para seguir la respuesta de Charles Bailey, aquí está mi configuración de git que usa p4merge (herramienta de combinación de 3 vías multiplataforma gratuita); probado en la instalación de msys Git (Windows):
o, desde un shell de Windows cmd.exe, la segunda línea se convierte en:
Los cambios (en relación con Charles Bailey):
Descargar: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDITAR (Feb 2014)
Como señaló @Gregory Pakosz , el último msys git ahora "nativamente" es compatible con p4merge (probado en 1.8.5.2.msysgit.0 ).
Puede mostrar la lista de herramientas compatibles ejecutando:
Debería ver p4merge en la lista disponible o válida . Si no, actualiza tu git.
Si p4merge figuraba como disponible , está en su RUTA y solo tiene que configurar merge.tool :
Si figuraba como válido , debe definir mergetool.p4merge.path además de merge.tool :
~
debería expandirse al directorio de inicio del usuario actual (por lo que, en teoría, la ruta debería ser~/AppData/Local/Perforce/p4merge.exe
), esto no funcionó para mí$LOCALAPPDATA/Perforce/p4merge.exe
. Ej. ), Git no parece estar expandiendo las variables de entorno para rutas (si sabe cómo hacer que esto funcione, hágamelo saber o actualice esta respuesta)fuente
mergetool.p4merge.cmd
ya no funcionará ya que Git ha comenzado a tratar de admitir p4merge, miralibexec/git-core/git-mergetool--lib
. en su lugar usa directamentemergetool.p4merge.path
cmd = \""c:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe"\" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"
git config --global mergetool.p4merge.cmd '"C:\\Program Files\\Perforce\\p4merge" $BASE $LOCAL $REMOTE $MERGED'
en la máquina con Windows 7configurar mergetool.p4merge.cmd ya no funcionará ya que Git ha comenzado a tratar de admitir p4merge, consulte libexec / git-core / git-mergetool--lib.así que solo necesitamos especificar la ruta de mergetool para git, por ejemplo, p4merge:
Entonces funcionará.
fuente
Estoy usando Portable Git en WinXP (¡funciona de maravilla!), Y necesitaba resolver un conflicto que surgió en la ramificación. De todas las gui que verifiqué, KDiff3 demostró ser la más transparente de usar.
Pero encontré las instrucciones que necesitaba para que funcionara en Windows en esta publicación de blog , instrucciones que difieren ligeramente de los otros enfoques enumerados aquí. Básicamente equivalía a agregar estas líneas a mi
.gitconfig
archivo:¡Funciona muy bien ahora!
fuente
path = C:\\Program Files (x86)\\KDiff3\\kdiff3.exe
(observe las barras diagonales dobles)Bajo Cygwin, lo único que funcionó para mí es lo siguiente:
Además, me gusta desactivar el mensaje de solicitud de difftool:
fuente
git mergetool
es totalmente configurable para que pueda elegir su herramienta favorita.La documentación completa está aquí: http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html
En resumen, puede establecer una herramienta de combinación predeterminada configurando la variable de configuración del usuario
merge.tool
.Si la herramienta de combinación es una de las admitidas de forma nativa, solo tiene que establecer
mergetool.<tool>.path
la ruta completa de la herramienta (reemplace<tool>
por lo que ha configuradomerge.tool
para ser.De lo contrario, puede establecer
mergetool.<tool>.cmd
un bit de shell para evaluar en tiempo de ejecución con las variables de shell$BASE, $LOCAL, $REMOTE, $MERGED
establecidas en los archivos apropiados. Debe tener un poco de cuidado con el escape si edita directamente un archivo de configuración o establece la variable con elgit config
comando.Algo como esto debería darle el sabor de lo que puede hacer ('mymerge' es una herramienta ficticia).
Una vez que haya configurado su herramienta de fusión favorita, es simplemente una cuestión de ejecución
git mergetool
cada vez que tenga conflictos que resolver.La herramienta p4merge de Perforce es una herramienta de fusión independiente bastante buena.
fuente
Para más allá de comparar en Windows 7
fuente
Parece que las versiones más nuevas de git admiten p4merge directamente, por lo que
debería ser todo lo que necesita, si p4merge.exe está en su camino. No es necesario configurar cmd o ruta.
fuente
Como ya se respondió aquí (y aquí y aquí ), mergetool es el comando para configurar esto. Para una interfaz gráfica agradable, recomiendo kdiff3 (GPL).
fuente
Tuve que eliminar las citas adicionales usando msysGit en Windows 7, no estoy seguro de por qué.
fuente
Si está haciendo esto a través de cygwin, es posible que necesite usar cygpath:
fuente
Bah, esto finalmente funcionó para mí (Windows 7 + Cygwin + TortoiseMerge):
En .git / config:
¡Gracias a los carteles anteriores por el consejo de usar Cygpath!
fuente
Yo uso una aplicación llamada WinMerge ( http://winmerge.org/ ) información de su manual ( http://manual.winmerge.org/CommandLine.html )
Este es el script bash que uso de la
mergetool
directiva a través de.gitconfig
Básicamente, el bash representa cuando el resultado de la diferencia en un archivo vacío y crea un nuevo archivo temporal en la ubicación correcta.
fuente
Encontré dos formas de configurar " SourceGear DiffMerge " como difftool y mergetool en github Windows.
Los siguientes comandos en una ventana del símbolo del sistema actualizarán su .gitconfig para configurar GIT usando DiffMerge:
[ O ]
Agregue las siguientes líneas a su .gitconfig. Este archivo debe estar en su directorio de inicio en C: \ Users \ UserName:
fuente
Es posible que desee agregar estas opciones también:
Además, no sé por qué, pero las citas y el corte de la respuesta de Milan Gardian me arruinaron las cosas.
fuente
Si alguien quiere usar gvim como su herramienta diff en TortoiseGit, entonces esto es lo que necesita ingresar en el ingreso de texto para la ruta a la herramienta diff externa:
fuente
Para IntelliJ IDEA (Community Edition) Configuración de mergetool de 3 vías git mergetool en entorno Windows (
~/.gitconfig
)Cygwin
Msys
~ / Winpath.sh es para convertir rutas a Windows en msys y se toma de la pregunta de conversión de ruta msys en stackoverflow
fuente
Para configurar p4merge, instalado usando chocolatey en windows para fusionar y diff, mira aquí: https://gist.github.com/CamW/88e95ea8d9f0786d746a
fuente
Si tiene problemas para abrir p4merge desde SourceTree, busque su archivo de configuración local llamado config en MyRepo.git y elimine cualquier configuración de combinación. En mi caso, estaba tratando de abrir Meld, que acabo de desinstalar
fuente