2011-02-10 12 views
33

Ho provato a utilizzare GIT, tuttavia per me il problema più grande è che non esiste uno strumento per l'unione. Almeno il msysgit non mi da niente. Come posso unire in GIT? Ci sono grandi strumenti per questo o devo usare WinMerge o un'applicazione del genere?Come si fondono in GIT su Windows?

Io uso di Java ed Eclipse.

+4

Per chiarire: che stai chiedendo uno strumento che' Ti aiuteremo a fondere a tre vie quando ti imbatti in conflitti, giusto? (Una delle cose fondamentali che git fa è unire, ma semplicemente lascia a voi per risolvere i conflitti.) – Cascabel

risposta

69

suggerisco kdiff3. Installarlo e mettere qualcosa di simile:

[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 

nel vostro .gitconfig

Per modificare la configurazione globale (.gitconfig): git config --global --edit

Il percorso di installazione sul computer possono essere diverse da c:/Program Files (x86)/KDiff3/kdiff3.exe. Sostituisci quella stringa sopra con il percorso effettivo del tuo binario kdiff3. E non dimenticate che dovete usare avanti barre, / e non quelle arretrate ( \ ) come programmi nativi di solito fare.

+26

Per modificare la configurazione globale (.gitconfig): 'git config --global --edit' – Mike

+0

^questo dovrebbe essere aggiunto alla risposta pure. :) – rgin

+4

Tra l'altro il percorso di installazione predefinito potrebbe essere c:/Program Files/KDiff3/kdiff3.exe –

3

Per me (Windows XP, KDiff3 0.9.96 e git 1.7.5.1), la risposta di Jan Hudec non ha funzionato. Qui è la mia messa a punto:

[diff] 
     tool = kdiff3 
     guitool = kdiff3 

[difftool] 
     prompt = false 

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

e

#!/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

La mia risposta è per [nativo Windows Git (MSysGit)] (http://git-scm.com/download/win). Se usi Cygwin Git con KDiff3 nativo, hai bisogno di questo wrapper usando 'cygpath'. Ma preferisco MSysGit anche se lo uso principalmente da cygwin shell (ho montato i dischi su/c /,/d/etc. e quindi gli strumenti di msys comprendono i percorsi senza necessità di traduzione, quelli ancora nativi ancora non lo sono) . –

0

Non è effettivamente bisogno di un altro strumento specifico per la fusione, dal momento che qualsiasi fornitore di Git decente dovrebbe essere in grado di prendersi cura di questo, anche msysgit stesso. Nel caso in cui sia desiderabile una GUI come WinMerge, c'è EGit, che è il fornitore del team Git per Eclipse, sebbene la sua funzione di fusione possa essere alquanto instabile dal momento che il progetto è ancora relativamente nuovo. C'è anche TortoiseGit che uso per la maggior parte delle operazioni git su Windows incluso l'unione.

2

Dal momento che si parla di utilizzare Eclipse, è possibile utilizzare EGit's merge tools, che fornisce un modo conveniente per gestire i conflitti:

enter image description here

enter image description here