284 votes

Résoudre les conflits à l'aide de modifications à distance lors de l'extraction depuis la télécommande Git

J'essaie de récupérer le code de mon repo GitHub sur mon serveur, mais le processus échoue sans cesse à cause de conflits de fusion. Je ne souhaite pas conserver les modifications survenues sur mon serveur local depuis la dernière tentative.

Y a-t-il un moyen de forcer Git à écraser la version de GitHub, plutôt que de me préoccuper des conflits?

470voto

Jefromi Points 127932

Si vous voulez vraiment vous débarrasser de l' commet vous avez fait localement, c'est à dire jamais dans l'histoire de nouveau, vous ne lui demandez pas comment tirer - tirer des moyens de fusion, et vous n'avez pas besoin de fusionner. Tout ce que vous devez faire est ceci:

# fetch from the default remote, origin
git fetch
# reset your current branch (master) to origin's master
git reset --hard origin/master

Je serais personnellement vous recommandons de créer une sauvegarde de la branche au niveau de votre TÊTE en premier, de sorte que si vous vous rendez compte que c'était une mauvaise idée, vous n'avez pas perdu la trace.

Si en revanche, vous voulez garder ces validations et le faire paraître comme si vous fusionné avec l'origine, et de provoquer la fusion de garder les versions d'origine uniquement, vous pouvez utiliser l' ours de fusion de la stratégie:

# fetch from the default remote, origin
git fetch
# create a branch at your current master
git branch old-master
# reset to origin's master
git reset --hard origin/master
# merge your old master, keeping "our" (origin/master's) content
git merge -s ours old-master

128voto

Antoine Pelisse Points 5067

Vous pouvez soit utiliser la réponse du lien dupliqué pointé par nvm.

Ou vous pouvez résoudre les conflits en utilisant leurs modifications (mais certaines de vos modifications peuvent être conservées si elles n'entrent pas en conflit avec la version distante):

 git pull -s recursive -X theirs
 

-13voto

Bhavya Points 293

Le moyen le plus simple de contourner ce problème est de supprimer le répertoire local, de le recréer et de créer un nouveau clone git init et git.

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