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: