2011-02-10 18 views
33

Intenté usar GIT; sin embargo, para mí, el mayor problema es que no hay una herramienta para fusionar. Al menos el msysgit no me da nada. ¿Cómo puedo fusionarme en GIT? ¿Hay alguna herramienta excelente o tengo que usar WinMerge o una aplicación así?¿Cómo se fusiona en GIT en Windows?

Uso Java y Eclipse.

+4

Para aclarar: que está pidiendo una herramienta que' Te ayudaré a fusionarte en tres direcciones cuando encuentres conflictos, ¿no? (Una de las cosas centrales que hace git es fusionarse, solo le deja a usted resolver conflictos). – Cascabel

Respuesta

69

Sugiero kdiff3. Instalarlo y poner algo como:

[merge] 
     tool = kdiff3 
[mergetool "kdiff3"] 
     path = c:/Program Files (x86)/KDiff3/kdiff3.exe 
[diff] 
     tool = kdiff3 
     guitool = kdiff3 
[difftool "kdiff3"] 
     path = c:/Program Files (x86)/KDiff3/kdiff3.exe 

en su .gitconfig

Para editar la configuración global (.gitconfig): git config --global --edit

La ruta de instalación en su máquina puede ser diferente de c:/Program Files (x86)/KDiff3/kdiff3.exe. Reemplace esa cadena de arriba con la ruta real a su binario kdiff3. Y no se olvide que usted tiene que utilizar hacia adelante barras, /, y no los atrasados ​​( \ ) como programas nativos suelen hacer.

+26

Para editar la configuración global (.gitconfig): 'git config --global --edit' – Mike

+0

^esto debería ser agregado a la respuesta también. :) – rgin

+4

Por cierto, la ubicación de instalación predeterminada podría ser c:/Archivos de programa/KDiff3/kdiff3.exe –

3

Para mí (Windows XP, kdiff3 0.9.96 y git 1.7.5.1), la respuesta de Jan Hudec no funcionaba. Aquí está mi configuración:

[diff] 
     tool = kdiff3 
     guitool = kdiff3 

[difftool] 
     prompt = false 

[difftool "kdiff3"] 
     path = /home/username/bin/difftool-kdiff3.sh 

y

#!/bin/sh 

# Passed the following parameters from git 
# --auto --L1 "somefile (A)" --L2 "somefile (B)" /tmp/4VhUw0_somefile somefile 

LOCAL=$6 
REMOTE=$7 

"C:/Program Files/KDiff3/kdiff3.exe" $(cygpath -w "$LOCAL") "$REMOTE" 
+1

Mi respuesta es para [nativo Windows Git (MSysGit)] (http://git-scm.com/download/win). Si usa Cygwin Git con KDiff3 nativo, necesita este contenedor utilizando 'cygpath'. Pero prefiero el MSysGit aunque lo uso principalmente desde cygwin shell (he montado los discos en/c /,/d/etc. y luego las herramientas msys entienden las rutas sin necesidad de traducción, las verdaderamente nativas aún no lo hacen) . –

0

En realidad no necesita otra herramienta específicamente para la fusión, ya que cualquier proveedor de Git decente debe ser capaz de cuidar de que, incluso msysgit sí. En su caso donde una GUI como WinMerge es deseable, está EGit, que es el proveedor del equipo Git para Eclipse, aunque su función de fusión puede ser algo inestable ya que el proyecto aún es relativamente nuevo. También hay TortoiseGit que utilizo para la mayoría de las operaciones de git en Windows, incluida la fusión.

2

Ya que mencionas utiliza Eclipse, puede utilizar EGit's merge tools, que proporciona una forma cómoda de manejar conflictos:

enter image description here

enter image description here

Cuestiones relacionadas