Forcer Git à toujours choisir la version la plus récente lors d'une fusion?
103
Supposons que je mergegit et qu'il y ait un conflit de fusion.
Ma question est: comment puis-je forcer git à toujours choisir la version la plus récente du code en conflit pour ne pas avoir à résoudre le conflit à la main?
mais je veux faire une fusion (pas remplacer les commits), mais en plus pour résoudre les conflits automatiquement.
bartek
Réponses:
188
Ce n'est pas exactement la version "plus récente", mais vous pouvez dire à git de toujours préférer la version sur la branche actuelle en utilisant git merge branch -X ours, ou de préférer la version de la branche fusionnée, en utilisant git merge branch -X theirs.
De man git-merge:
les notres:
Cette option oblige les morceaux en conflit à être résolus automatiquement en favorisant notre version. Les modifications de l'autre arbre qui n'entrent pas en conflit avec notre côté sont reflétées dans le résultat de la fusion. Pour un fichier binaire, tout le contenu est pris de notre côté.
ours- theirs!! Dites-le simplement et vous comprendrez ce que fait la commande! J'adore Git! : D
Haywire
14
Remarque: si vous l'avez déjà utilisé git merge branch, vous devrez le faire git merge --abortavant de pouvoir le faire.
John Dvorak
1
Ça ne marche pas pour moi. Il abandonne toujours la fusion. error: The following untracked working tree files would be overwritten by merge:Je ne sais même pas pourquoi ces fichiers sont dans cette branche en premier lieu, mais ils devraient être écrasés et git refuse.
mcv
2
S'ils ne sont pas suivis, vous devez d'abord les supprimer (ou git add). Lisez un peu git clean, cela peut vous aider.
Renato Zannon
Après avoir exécuté git merge ours, s'il y a des fichiers de conflit, y aura-t-il un journal? et pourrais-je suivre le de git merge ours?
Cette solution m'a aidé à résoudre les conflits non fusionnés alors que tout ce que je voulais était de remplacer avec la branche principale. j'ai utilisé git reset --hard master (de local)
Réponses:
Ce n'est pas exactement la version "plus récente", mais vous pouvez dire à git de toujours préférer la version sur la branche actuelle en utilisant
git merge branch -X ours
, ou de préférer la version de la branche fusionnée, en utilisantgit merge branch -X theirs
.De
man git-merge
:la source
ours
-theirs
!! Dites-le simplement et vous comprendrez ce que fait la commande! J'adore Git! : Dgit merge branch
, vous devrez le fairegit merge --abort
avant de pouvoir le faire.error: The following untracked working tree files would be overwritten by merge:
Je ne sais même pas pourquoi ces fichiers sont dans cette branche en premier lieu, mais ils devraient être écrasés et git refuse.git add
). Lisez un peugit clean
, cela peut vous aider.git merge ours
, s'il y a des fichiers de conflit, y aura-t-il un journal? et pourrais-je suivre le degit merge ours
?Je l'utilise,
la source