Faire un Git pull pour écraser les modifications locales
Il y a certainement eu des postes autour de cela, mais j'ai fait un commit parce que je pensais que c'était la bonne chose à faire.
Donc, j'ai deux référentiels, un développement et une production. J'ai dû modifier quelque chose dans la production parce qu'il était urgent de correction, et maintenant j'ai trois fichiers les plus récents dans la production que dans le développement.
Je me suis engagé les trois fichiers sur la production et essayé un pull, mais il m'a dit il y avait de fusionner les erreurs. J'ai essayé de copier et de coller les nouveaux fichiers sur le serveur de développement et de rejouer le tout et ça ne fonctionne pas. Maintenant, je suis sûr que ce dont j'ai besoin sur le développement (depuis que j'ai copiés et collés) et engagée, alors comment pouvais-je tirer et écraser les conflits de fichiers?
---- Suivi de @Seths répondre
Ok, je suppose que j'ai besoin de reformuler ma question 🙂
J'ai trois référentiels. Un développement, un sur GitHub et à une production.
Généralement à la mise à jour de la production, je viens de faire un push de développement GitHub, git pull origin master
(à partir de GitHub à la production), et ça fonctionne.
Malheureusement, j'ai changé les fichiers sur la production sans accrocher. Comment puis-je la force d'écraser au lieu de fusionner lorsque vous essayez un pull?
OriginalL'auteur Andre | 2011-06-06
Vous devez vous connecter pour publier un commentaire.
Si vous voulez remplacer entièrement votre succursale locale foo avec le contenu de la branche distante origine/foo:
Si vous voulez faire quelque chose d'autre, merci de reformuler votre question. Toutefois, je me permets d'ajouter que la production de dépôt Git distant et puis de fusionner vivre des changements dans la, la place de ce que vous avez essayé.
Quel est exactement le problème avec ma réponse? Il semble faire exactement ce que vous avez demandé (pour les valeurs de "foo" probablement égale à "maître"). Rappelez-vous d'accepter la réponse correcte lorsque vous avez terminé.
A travaillé comme un charme! Je vous remercie. Je ne savais pas quoi pour le remplacer par "foo".
href="http://en.wikipedia.org/wiki/Foobar" >en.wikipedia.org/wiki/Foobar
Pour plus de précisions sur ce que remplacer
foo
, vous voulez au lieu d'utiliser le nom de votre branche. Cet exemple se rapporte à une branche nomméefoo
.OriginalL'auteur Seth Robertson
Vous avez besoin pour passer de la production de la première à GitHub:
La force assurez-vous que GitHub a ce que la production a.
Voici les possibilités que vous pourriez faire:
Vous aurez besoin de récupérer les changements dans votre référentiel de développement dans le déploiement du référentiel. À ce stade, vous verrez que l'histoire est la ramification (via
git log --all --graph
ougitk --all
).Vous pouvez maintenant rebase ou de fusion pour obtenir vos dernières modifications ultérieures à celles faites sur la production du référentiel. Cela vous permettra de faire pousser des modifications à votre déployer référentiel à un moment plus tard.
Les conflits sont là pour une raison. Les regarder et de les résoudre, ajouter et valider.
Si vous voulez que les conflits soient résolus en prenant ce qui est du côté de la production, vous pouvez utiliser le bouton "récursive leur" stratégie:
Si vous voulez prendre aucuns changements de votre côté, de fusion normalement, mais quand vous êtes arrêté à l'conflits, obtenir de l'autre côté de la fusion, les ajouter et valider.
Maintenant ultérieure pousse à GitHub de développement et tire à partir de GitHub dans la production de travail.
Vous pouvez réinitialiser la branche, mais qui suppose que vous ne voulez pas conserver les modifications que vous avez effectuées sur le référentiel de développement.
OriginalL'auteur Adam Dymitruk