219 votes

Comment garder le fichier local ou distant au cours de la fusion à l’aide de Git et la ligne de commande ?

Je sais comment fusionner modification à l'aide de vimdiff, mais, en supposant que je sais juste que la totalité du fichier est bon de garder ou de jeter, comment dois-je faire?

Je ne veux pas l'ouvrir vimdiff pour chacun d'eux, je change souhaitez une commande qui dit "locales" ou "tenir à distance".

E. G: j'ai eu une fusion avec les fichiers marqués comme étant changé parce que quelqu'un l'a ouvert sous windows, la modification de l'EOL, puis commis. Lors de la fusion, je veux juste garder mon propre version et jeter sa.

Je suis aussi intéressé par le contraire: j'ai foiré gros temps et que vous voulez accepter le fichier distant, en écartant mes modifications.

334voto

Waiting for Dev... Points 3065

Vous pouvez aussi bien le faire :

conserver le fichier distant, et :

pour garder le fichier local.

Puis `` eux et tout est fait.

Facile, n’est ce pas ? :)

128voto

keflavich Points 2310

Cette approche semble plus simple, évitant la nécessité de sélectionner individuellement chaque fichier :

ou

Copié directement à partir de : résoudre les conflits de fusion de git acceptant leurs changements

9voto

sehe Points 123151

Pour la fin de ligne thingie, reportez-vous à l' man git-merge:

--ignore-space-change 
--ignore-all-space 
--ignore-space-at-eol

Assurez-vous d'ajouter autocrlf = false et/ou safecrlf = false de la windows clone (.git/config)

À l'aide de git mergetool

Si vous configurez un mergetool comme ceci:

git config mergetool.cp.cmd '/bin/cp -v "$REMOTE" "$MERGED"'
git config mergetool.cp.trustExitCode true

Alors qu'un simple

git mergetool --tool=cp
git mergetool --tool=cp -- paths/to/files.txt
git mergetool --tool=cp -y -- paths/to/files.txt # without prompting

Va faire le travail

À l'aide de simples commandes git

Dans d'autres cas, je suppose

git checkout HEAD -- path/to/myfile.txt

devrait faire l'affaire

Edit pour faire l'inverse (parce que vous foiré):

git checkout remote/branch_to_merge -- path/to/myfile.txt

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