web-dev-qa-db-fra.com

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 Origin Master. 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? 

52
user1152142

Je suppose que votre origine est votre propre fork d'un projet pour lequel vous voulez faire une demande de tirage aussi?

Comme vous allez changer d’historique (en réinitialisant la tête), vous devrez pousser avec le drapeau --force. Localisez le hachage de votre dernier bon commit en utilisant git log.

Maintenant courir

git reset SHA

Cela vous changera la tête et conservera les modifications apportées aux fichiers depuis le dernier bon commit, votre index sera également réinitialisé.

Maintenant, vous pouvez changer votre code et faire les commits que vous voulez. Mais vous devez faire git Push --force puisque vous avez changé l'historique du référentiel. Cela signifie que quiconque a créé votre référentiel ne pourra plus extraire les modifications de votre part. Mais vous pourrez faire une demande de pull à votre amont.

34

Si vous utilisez git gui, allez à git gui et visualisez l’historique de votre branche . (Avant de passer à l’étape suivante, sauvegardez les modifications locales que vous souhaitez diffuser) Faites un clic droit sur le point où la branche veut réinitialiser en maître et cliquer sur reset . Après la réinitialisation, en ligne de commande, tapez git Push -fMaintenant, apportez les modifications nécessaires dans la branche, validez n Push à nouveau . Si vous créez une demande d'extraction maintenant, il n'aura plus que le nouveau commit après la réinitialisation de la branche.

0
vanitha