Supprimer les commits d'une branche Git
Cet article explique comment supprimer des commits d'une branche Git.
1. réinitialisation de git
Ici, l'idée est de forcer la réinitialisation du répertoire de travail pour supprimer tous les commits qui viennent après le commit spécifié, puis de forcer le push :
Vous pouvez faire référence à un commit via son ascendance, en utilisant son hachage SHA-1 complet, ou en fournissant le hachage partiel, qui doit comporter au moins 4 caractères et sans ambiguïté.
git reset --hard HEAD~4
Si ces validations sont présentes dans le référentiel distant, vous devrez forcer le push de la réinitialisation matérielle vers le référentiel distant.
git push [-f | --force]
Voici un exemple en direct :
Notez que toutes les modifications apportées au répertoire de travail depuis le dernier commit sont silencieusement ignorées. Pour l'éviter, cachez d'abord vos modifications locales en appelant le git-stash
commande, qui à son tour rétablit également le répertoire de travail dans le HEAD
révision après avoir enregistré vos modifications locales. git reset --hard HEAD
est souvent utilisé pour supprimer toutes les modifications non validées afin qu'elles correspondent à la validation la plus récente dans le répertoire de travail.
Si vous souhaitez conserver votre travail et uniquement annuler le commit, vous pouvez utiliser le --soft
option.
Ceci est démontré ci-dessous :
2. git revenir
Ce n'est pas une bonne idée de faire un push forcé sur un dépôt public ou partagé ; fait une git-revert Au lieu. Il crée un nouveau commit qui annule tous les changements de commit spécifiés, puis l'applique à la branche actuelle.
git revert 87859b5
# Push to the remote
git push
Voici un exemple en direct :
3. Rebasage interactif
Un autre moyen plausible de supprimer des commentaires consiste à utiliser le git-rebase commande.
L'exécution de la commande ci-dessus ouvrira un éditeur avec tous les commits de votre branche actuelle, qui viennent après le commit spécifié. Pour supprimer un commit, remplacez simplement la commande 'pick' par 'drop' et fermez l'éditeur. Vous pouvez également supprimer la ligne correspondante.
La commande suivante supprimera un commit entier e78d8b1
en une seule fois à l'aide du --rebase-merges
mode avec le --onto
option.
Il s'agit de supprimer des commits d'une branche Git.