J'ai fait une demande de tirage mais après cela, je me suis engagé localement dans le projet, ce qui a fini par polluer ma demande de tirage. J'ai essayé de l'enlever, mais sans succès.
J'ai trouvé des questions similaires sur StackOverflow mais je ne peux pas appliquer ce qu'il contient. C'est ma première demande de tirage sur GitHub, donc c'est un peu étrange pour moi de voir comment tout cela fonctionne.
Le commit mis en surbrillance est celui que j'ai besoin de conserver et de supprimer tous les autres éléments. Cela devient le quatrième commit de l'histoire parce que je fais des choses de fusion.
Quelqu'un peut-il s'il vous plaît expliquer ce qui se passe et comment résoudre ce problème?
Vous avez plusieurs techniques pour le faire.
Cet article - lisez la partie sur le retour expliquera en détail ce que nous voulons faire et comment le faire.
Voici la solution la plus simple à votre problème:
# Checkout the desired branch
git checkout <branch>
# Undo the desired commit
git revert <commit>
# Update the remote with the undo of the code
git Push Origin <branch>
La commande revert créera une nouvelle validation avec l'annulation de la validation d'origine.
Les gens n'aimeraient pas voir un commit incorrect et un commit annuler pour annuler les modifications du commit erroné. Cela pollue l'histoire commise.
Voici un moyen simple de supprimer le mauvais commit au lieu d'annuler les modifications avec un commit de retour.
git checkout my-pull-request-branch
git rebase -i HEAD~n
// où n
est le nombre de dernières validations que vous souhaitez inclure dans la base interactive.
pick
par drop
pour les commits que vous souhaitez supprimer.git Push --force
Alors faites ce qui suit,
Disons que votre nom de branche est my_branch et que cela comporte les commits supplémentaires.
git checkout -b my_branch_with_extra_commits
(Conserver cette branche sous un nom différent)gitk
(ouvre la console git)git checkout my_branch
gitk
(Cela ouvrira la console git)reset branch to here
"git pull --rebase Origin branch_name_to _merge_to
git cherry-pick <SHA you copied in step 3. >
Examinez maintenant l’historique des commissions de la branche locale et assurez-vous que tout semble bon.
Si vous supprimez un commit et que vous ne voulez pas conserver ses modifications, @ferit a une bonne solution.
Si vous souhaitez ajouter ce commit à la branche actuelle, mais que cela n'a pas de sens de faire partie du pr actuel, vous pouvez plutôt procéder comme suit:
git rebase -i HEAD~n
git reset HEAD^ --soft
pour annuler la validation des modifications et les récupérer dans un état échelonné.git Push --force
pour mettre à jour la branche distante sans votre commit supprimé.Maintenant, vous aurez supprimé le commit de votre télécommande, mais les modifications auront toujours lieu localement.