Supprimer les commits non poussés dans Git

Azhar Bashir Khan 31 mai 2022
Supprimer les commits non poussés dans Git

Ce tutoriel vous apprendra comment supprimer les commits non poussés dans Git.

Git est utilisé dans un environnement de développement collaboratif pour suivre les modifications apportées aux fichiers dans le répertoire du projet. Git utilise des commits pour garder une trace des modifications du référentiel Git local et distant.

On peut vouloir supprimer les commits non poussés du référentiel Git local de temps en temps.

Supprimez les commits non poussés à l’aide de la commande git reset. Nous allons illustrer cela par un exemple.

Utilisez la commande git reset pour supprimer les commits non poussés dans Git

Chaque fois que nous voulons valider des modifications dans le répertoire du projet, nous pouvons valider les modifications à l’aide des commandes git add et git commit.

Lors de l’utilisation de la commande git commit, un commit est créé dans le référentiel Git local. Nous pouvons ensuite utiliser la commande git push pour pousser les commits du référentiel Git local vers le référentiel Git distant.

Parfois, nous pouvons réaliser que nous ne voulons pas pousser les commits vers le référentiel distant et que nous venons de valider le référentiel local. Dans de tels cas, nous pouvons utiliser la commande git reset pour annuler ou supprimer ces derniers commits dans le référentiel Git local.

Le git reset est une commande utilisée pour annuler les modifications locales apportées à l’état d’un référentiel Git.

Supposons que nous ayons un changement dans le répertoire de travail. Nous pouvons voir le statut du changement avec la commande git status.

$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)
        modified:   mynotes.txt

Nous pouvons voir que le fichier mynotes.txt est modifié et éligible au commit.

Pour valider les modifications, nous devons d’abord utiliser la commande git add pour ajouter les modifications à l’index de staging du référentiel Git local. Nous devons exécuter la commande git add comme suit.

$ git add .
$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   mynotes.txt

Ainsi, lors de l’utilisation de la commande git status, nous pouvons voir que les changements sont maintenant mis en scène.

Nous pouvons valider les modifications dans le référentiel Git local. Nous devons utiliser la commande git commit pour créer un commit pour les modifications par étapes.

Nous exécutons la commande git commit comme suit.

$ git commit -m "updated mynotes"
[main e1b08a5] updated mynotes
 1 file changed, 1 insertion(+)

Maintenant, nous exécutons à nouveau la commande git status pour voir le statut.

$ git status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

Nous pouvons maintenant voir que la branche locale dans le dépôt local est en avance sur la branche distante du dépôt Git origin/main d’un commit.

Nous pouvons utiliser la commande git push pour pousser le commit vers le référentiel Git distant. Mais au lieu de faire cela, nous supprimons le commit non poussé à l’aide de la commande git reset comme suit.

$ git reset --soft HEAD~1

La commande git reset avec l’option --soft supprime le commit non poussé du référentiel Git local mais conserve les modifications locales. Le HEAD~1 spécifie la commande git reset pour supprimer un seul dernier commit.

Nous allons maintenant lancer le git status pour vérifier l’état du référentiel comme suit.

$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   mynotes.txt

Ainsi, nous pouvons voir que le commit non poussé n’est plus présent. Les modifications sont toujours mises en scène, cependant.

L’utilisation de l’option --hard au lieu de l’option de commande --soft avec la commande git reset aurait supprimé le commit récent tel que spécifié par le HEAD~1 et les modifications locales effectuées.

Nous pouvons lancer la commande git reset avec l’option --hard.

$ git reset --hard HEAD~1

Cela supprime également les fichiers ou répertoires non suivis ainsi que les modifications suivies. Ainsi, utilisez-le avec prudence, ou nous pourrions perdre tout le travail effectué.

Ainsi, nous avons appris à supprimer les commits non poussés dans le référentiel Git local.

Pour plus d’informations, s’il vous plaît visitez:

  1. git-reset
  2. git reset

Article connexe - Git Reset