2017-03-05 5 views
2

Après l'installation KDiff3 pour la gestion des conflits dans git, toujours la valeur par défaut d'un ouvre pour moi:git - set KDiff3 par défaut mergetool

enter image description here

Voici la configuration mentionnée dans cette answer:

git config --global --add merge.tool kdiff3 
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe" 
git config --global --add mergetool.kdiff3.trustExitCode false 

git config --global --add diff.guitool kdiff3 
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe" 
git config --global --add difftool.kdiff3.trustExitCode false 

REMARQUE: Je peux exécuter KDiff3 individuellement avec des fichiers simples, mais je ne peux pas l'exécuter mon projet git. Une idée?

Edit: Voici mon .gitconfig:

[user] 
    email = [email protected] 
    name = vahid najafi 
[diff] 
    tool = kdiff3 
    guitool = kdiff3 
[merge] 
    tool = diffmerge 
    tool = kdiff3 
    tool = kdiff3 
[mergetool "diffmerge"] 
    trustExitCode = true 
[mergetool "kdiff3"] 
    path = C:/Program Files/KDiff3/kdiff3.exe 
    trustExitCode = false 
[difftool "kdiff3"] 
    path = C:/Program Files/KDiff3/kdiff3.exe 
    trustExitCode = false 

Répondre

2

Enfin, j'ai fait une autre solution! J'ai utilisé meld au lieu de kdiff3. Premier téléchargement meld de here. Puis changer config pour meld dans c: /Users/yourName/.gitconfig:

[user] 
    email = [email protected] 
    name = vahid najafi 
[diff] 
    tool = meld 
[difftool "meld"] 
    path = C:/Program Files (x86)/Meld/meld/meld.exe 
[difftool] 
    prompt = false 
[merge] 
    tool = meld 
[mergetool "meld"] 
    path = C:/Program Files (x86)/Meld/meld/meld.exe 
[mergetool] 
    keepBackup = false 

REMARQUE: Essayez d'utiliser git cmd au lieu de fenêtres cmd. En cas de conflit, exécutez simplement: git mergetool. Pour plus de détails et d'exemples, voir here.

1

Je ne sais pas kdiff3, mais vous pourriez avoir besoin d'ajouter les fichiers que vous souhaitez comparer à votre appel d'outil en tant que paramètres (voir les options de ligne de commande pour KDiff3, appelez le here). Dans votre configuration globale (accessible via git config --global -e), les lignes respectives devraient ressembler à ceci:

[merge] 
    tool = kdiff3 
[mergetool "kdiff3"] 
    trustExitCode = false 
    cmd = 'C:/Program Files/KDiff3/kdiff3.exe' "$LOCAL" "$BASE" "$REMOTE" "$MERGED" 

Depuis que je n'ai pas essayé cela avec KDiff3, vous pourriez avoir à changer l'ordre de "$LOCAL" "$BASE" "$REMOTE" et "$MERGED" des variables, mais this post devrait fournir suffisamment d'informations supplémentaires à ce sujet. Bien qu'il s'agisse de l'outil Meld, je suis sûr que la manipulation est analogique, et il y a quelques bonnes réponses informatives.

EDIT: En supposant que vous utilisez Windows: Vous pouvez simplement le localiser dans l'explorateur Windows, généralement dans c:\user\yourusername\.gitconfig, et l'ouvrir avec n'importe quel éditeur. Sous Linux, voir this post. Ensuite, remplacer tous les merge, mergetool et difftool sections avec les éléments suivants:

[merge] 
    tool = kdiff3 
[mergetool "kdiff3"] 
    cmd = "C:/Program Files/KDiff3/kdiff3.exe" "$LOCAL" "$BASE" "$REMOTE" "$MERGED" 
    trustExitCode = false 
[difftool "kdiff3"] 
    cmd = "C:/Program Files/KDiff3/kdiff3.exe" "$LOCAL" "$BASE" "$REMOTE" "$MERGED" 
    trustExitCode = false 

Si ot ne fonctionne pas, il est possible que vous devez changer l'ordre des variables "$LOCAL" "$BASE" "$REMOTE" et "$MERGED" ou supprimer un d'entre eux. Vous pouvez trouver des informations suffisantes à ce sujet dans les liens fournis ci-dessus.

+0

Merci. Je lance 'git config --global -e', mais cette partie n'existe pas:' "$ LOCAL" "$ BASE" "$ REMOTE" "$ MERGED" ' –

+0

Oui, je m'y attendais autant. Vous devriez l'ajouter pour vous assurer que KDiff3 est appelé avec les bons fichiers. – kowsky

+0

Comment devrais-je ajouter? Comme je suis assez nouveau pour ça. –