52 votes

Git Supprimer les commits indésirables d'une demande d'extraction

J'ai commencé à travailler sur un projet et j'ai fait des commits non désirés que j'ai poussés vers le maître d'origine. Maintenant, lorsque j'essaie de faire une demande d'extraction, Github veut valider tous les commits précédents.

Ma question est la suivante: comment puis-je supprimer les commits non désirés et valider les modifications que je veux valider afin que je sois à jour avec master?

34voto

Simon Skov Boisen Points 2235

Je suppose que votre origine est votre fourchette de quelque projet que vous souhaitez faire une demande d'extraction trop?

Etant donné que vous allez changer l'histoire (par la réinitialisation de la tête), vous aurez besoin de pousser avec option --force. Recherchez le hash de votre dernière bonne valider à l'aide de git log.

Maintenant, exécutez

git reset SHA

Cela va changer votre tête pour que sha et conserver les modifications dans les fichiers depuis ce dernier s'engager, votre index reset.

Maintenant, vous pouvez modifier votre code et ne l'engage que vous voulez. Mais vous avez à faire, git push --force depuis que vous avez changé l'histoire du référentiel. Cela signifie que toute personne qui fourche de votre dépôt ne sera pas en mesure d'extraire les modifications de vous plus. Mais vous serez en mesure de faire un pull request à vos amont.

0voto

vanitha Points 1

Si vous utilisez git gui, allez à git gui et visualisez l’historique de votre branche. (avant de passer à l'étape suivante, effectuez une sauvegarde des modifications locales que vous souhaitez appliquer). Cliquez avec le bouton droit de la souris sur le point où la branche souhaite réinitialiser en tant que maître, puis cliquez sur Réinitialiser. Après la réinitialisation, en ligne de commande, tapez git push -f. Apportez les modifications nécessaires dans la branche, validez n push à nouveau. Si vous créez une demande d'extraction maintenant, seule la nouvelle validation sera validée après la réinitialisation de la branche.

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