Supprimer les fichiers d'un commit Git

J'utilise Git et j'ai validé quelques fichiers en utilisant la méthode suivante

git commit -a

Plus tard, j'ai découvert qu'un fichier avait été ajouté par erreur au commit.

Comment puis-je supprimer un fichier de la dernière livraison ?

ATTENTION ! Si vous voulez seulement supprimer un fichier de votre précédent commit, et le conserver sur le disque, lisez la réponse de juzzlin juste au-dessus.

Si c'est votre dernier commit et que vous voulez supprimer complètement le fichier de votre dépôt local et du dépôt distant, vous pouvez le faire :

  1. supprimer le fichier git rm
  2. faire un commit avec l'option amender : git commit --amend'.

L'option amender dit à git de commiter à nouveau, mais de "fusionner" (pas dans le sens de fusionner deux branches) ce commit avec le dernier commit.

Comme indiqué dans les commentaires, utiliser git rm ici est comme utiliser la commande rm elle-même !

Commentaires (5)

Si vous n'avez pas poussé les changements sur le serveur vous pouvez utiliser

git reset --soft HEAD~1

Cela réinitialisera tous les changements et reviendra à un commit précédent.

Si vous avez poussé vos modifications, suivez les étapes indiquées par @CharlesB.

Commentaires (8)

La suppression du fichier à l'aide de rm le supprimera !

Dans git, vous ajoutez toujours à un commit plutôt que de le supprimer, donc dans ce cas, remettez le fichier dans l'état dans lequel il était avant le premier commit (cela peut être une action de suppression 'rm' si le fichier est nouveau) et ensuite re-commit et le fichier disparaîtra.

Pour remettre le fichier dans un état antérieur :

    git checkout  <path_to_file>

ou pour le ramener à l'état du HEAD distant :

    git checkout origin/master <path_to_file>

puis modifiez le commit et vous devriez constater que le fichier a disparu de la liste (et non supprimé de votre disque !).

Commentaires (0)