La manipulation de l'historique est très courante pour les développeurs qui travaillent régulièrement avec Git. En effet, les développeurs doivent souvent supprimer les commits de l’historique Git. Heureusement, Git fournit de nombreuses commandes pour rendre cette opération possible.
Allons-y 😎.
Avant de manipuler l'historique Git, assurez-vous que votre répertoire de travail est exempt de toute modification à l'aide de la commande git status .
Pour supprimer des commits d'un serveur distant, vous devrez d'abord les supprimer de votre historique local.
Si les commits que vous souhaitez supprimer sont placés en haut de votre historique de commits, utilisez la commande git reset --hard
avec l'objet HEAD
et le nombre de commits que vous souhaitez supprimer.
git reset --hard HEAD~1
Cette commande supprimera le dernier commit .
git reset --hard HEAD~3
Cette commande supprimera les trois derniers commits .
Vous pouvez également supprimer jusqu'à un commit spécifique en utilisant le hachage d'un commit, comme ceci :
git reset --hard <hash>
Si toutefois vous souhaitez supprimer les commits non consécutifs, vous devrez utiliser un rebase interactif.
git reflog
.git rebase -i <hash>
.git rebase --continue
ou recommencez en abandonnant le rebase .Pour supprimer les commits de la télécommande, vous devrez transmettre vos modifications locales à la télécommande à l'aide de la commande git push .
git push origin HEAD --force
Étant donné que votre historique local diverge de l'historique distant, vous devez utiliser l'option force
.
Comme vous pouvez le constater, Git facilite la suppression des commits d'un serveur distant.
Cependant, vous devez être prudent lorsque vous utilisez la commande git push
avec l'option force
car vous pourriez perdre votre progression si vous n'êtes pas prudent.
Merci pour la lecture!