J'essaie d'extraire du code de mon référentiel GitHub sur mon serveur, mais l'extraction échoue en raison de conflits de fusion. Je ne veux conserver aucune des modifications qui peuvent s'être produites sur mon serveur local depuis le dernier pull.
Existe-t-il un moyen de forcer Git à écraser avec la version de GitHub, plutôt que de me déranger pour les conflits?
Réponses:
Si vous voulez vraiment annuler les commits que vous avez faits localement, c'est-à-dire ne plus les avoir dans l'historique, vous ne demandez pas comment tirer - tirer signifie fusionner, et vous n'avez pas besoin de fusionner. Il vous suffit de faire ceci:
Je recommanderais personnellement de créer d'abord une branche de sauvegarde sur votre HEAD actuel, de sorte que si vous réalisez que c'était une mauvaise idée, vous ne l'avez pas perdue de vue.
Si, d'autre part, vous souhaitez conserver ces validations et donner l'impression que vous avez fusionné avec l'origine et que la fusion conserve uniquement les versions d'origine, vous pouvez utiliser la
ours
stratégie de fusion:la source
Vous pouvez soit utiliser la réponse du lien en double 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):
la source
X
L'option est passée pour fusionner la stratégie, ce qui n'est que lors de larecursive
fusion de deux têtes, donc votre commande se plaindra"Could not find merge strategy 'theirs'. Available strategies are: octopus ours recursive resolve subtree."
- c'est dommage, car elleX
peut être définie dans config (par exemplegit config pull.twohead theirs
) maiss
ne peut pas.