Je travaille avec Visual Studio 2013 Update 4 et git (hébergé sur Visual Studio Online). J'ai 2 commits locaux et 2 commits dans une branche distante. Il n'y a AUCUN changement local à valider:
Lorsque j'essaie de faire Pull (ou Fetch) dans Visual Studio, j'obtiens une erreur:
Une erreur est survenue. Message détaillé: 1 conflit empêche le paiement
Oui, il y a un conflit, je devrais fusionner. Et selon sur cette page On devrait me proposer un lien pour résoudre le conflit. Mais je ne vois pas cela dans VS.
Je peux fusionner en dehors de VS, mais ce n'est pas le but. Dans le même temps, mon collègue exécutant la même configuration peut effectuer la fusion sans problème. Quel est le problème avec mon VS?
p.s. J'ai installé msysgit qui pourrait avoir gâché les configurations. Selon cela post mon global .gitconfig
ressemble à:
[user]
mail = [email protected]
name = trailmax
email = [email protected]
[core]
excludesfile = C:\\Users\\trailmax\\Documents\\gitignore_global.txt
autocrlf = true
editor = \"C:/Program Files (x86)/GitExtensions/GitExtensions.exe\" fileeditor
[diff]
tool = vsdiffmerge
[difftool "vsdiffmerge"]
cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
keepbackup = false
trustexistcode = true
[merge]
tool = vsdiffmerge
[mergetool]
Prompt = true
[mergetool "vsdiffmerge"]
cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
keepbackup = false
trustexistcode = true
[credential]
Dans mon cas, je ne pouvais pas voir le Resolve the conflicts
option car j'avais changements locaux pas encore validé et j'essayais de me synchroniser avec la télécommande changements. Dès que j'ai validé mes changements locaux puis réessayé une synchronisation, Resolve the conflicts
le lien est apparu.
Donc, le point ici est: commit vos modifications d'abord, puis essayez de synchroniser. Un fusion démarrera et Visual Studio vous permettra de parcourir chacun des conflits.
J'ai rencontré le même problème où "Une erreur s'est produite. Message détaillé: 1 conflit empêche le paiement" s'affiche où il n'y a pas d'option pour résoudre le conflit comme indiqué dans la réponse de Leinel.
La raison était due à un fichier non suivi qui est le même fichier à extraire. Je viens de supprimer le fichier non suivi et j'ai réessayé la traction.
J'ai eu le même problème. Il s'avère que j'avais un fichier non suivi qui devait être inclus. Par conséquent, vérifiez dans l'onglet Modifications les fichiers non suivis.
Je n'avais aucun "Changement" (non suivi ou autre) répertorié sur l'une ou l'autre branche, donc les autres réponses n'ont pas fonctionné pour moi.
J'ai décidé d'aller en ligne de commande:
git merge BRANCH_NAME
. (ma branche de travail/fusion "de")Si les conflits pendant le pull concernent des caractères de fin de ligne:
git config --global core.autocrlf false
Cela devrait éviter toute conversion EOL automatique.
Vous pouvez voir plus dans " Pourquoi git pense que chaque ligne d'un fichier vierge a changé " comment détecter cette situation dans l'arborescence de travail (git diff --Word-diff-regex=.
).