361 votes

Choisissez la stratégie de fusion Git pour des fichiers spécifiques ("le nôtre", "le mien", "le leur")

Je suis dans le milieu de la relocalisation après un git pull --rebase. J'ai quelques fichiers qui ont des conflits de fusion. Comment puis-je accepter "leur" modifications ou "mon" modifications de fichiers spécifiques?

$ git status
# Not currently on any branch.
# You are currently rebasing.
#   (fix conflicts and then run "git rebase --continue")
#   (use "git rebase --skip" to skip this patch)
#   (use "git rebase --abort" to check out the original branch)
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:  CorrectlyMergedFile
#
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add <file>..." to mark resolution)
#
#       both modified: FileWhereIWantToAcceptTheirChanges
#       both modified: FileWhereIWantToAcceptMyChanges

Normalement je viens d'ouvrir un fichier ou un outil de fusion et d'accepter manuellement tous les "leur" ou "mon" changements. Cependant, je pense que je vais manquer une commode commande git.

Notez également que je ne serai en mesure de choisir une stratégie de fusion pour chaque fichier quand je vois ce que les fichiers de frapper les conflits éventuellement ce que les conflits sont.

425voto

Cupcake Points 22154

Pour chaque fichier en conflit que vous obtenez, vous pouvez spécifier

git checkout --ours -- <paths>
# or
git checkout --theirs -- <paths>

De la git checkout docs

git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>...

--ours
--theirs
Lors de la vérification des chemins de l'index, consultez l'étape #2 (ours) ou 3 (theirs) pour les non fusionné les chemins d'accès.

L'indice peut contenir dissociées inscriptions à cause d'un précédent échec de la fusion. Par défaut, si vous essayez d'extraire une entrée de l'index, l'opération de vérification échoue et rien ne pourra être vérifié. À l'aide de -f ignore ces dissociées des entrées. Le contenu à partir d'un côté de la fusion peut être extrait de l'index à l'aide d' --ours ou --theirs. Avec -m, les modifications apportées à ce fichier de l'arborescence peut être mis au rebut pour recréer l'original en conflit résultat de la fusion.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X