Supprimer les fichiers commit dans Git

Abdul Jabbar 21 mars 2022
Supprimer les fichiers commit dans Git

Parfois, nous réalisons que nous devons déterminer manuellement quels fichiers sont importants pour le commit en cours et supprimer les fichiers indésirables du répertoire de travail. Cela peut être difficile pour les processus manuels, surtout si nous construisons un grand projet avec de nombreux développeurs dans une équipe.

Supposons que nous ayons validé le mauvais fichier dans le référentiel et que nous souhaitions le supprimer de la branche. La commande git reset est un outil utile lorsqu’il s’agit de Git. Cette commande est utilisée pour supprimer un fichier spécifique d’un commit Git spécifique ou du répertoire de travail dans la branche. Par exemple, vous pouvez exécuter la commande suivante si vous souhaitez supprimer le fichier "README.md" du commit vers lequel HEAD pointe.

git reset -soft HEAD@{1}

Nous pouvons supprimer le fichier d’un commit spécifique tout en conservant les modifications dans le répertoire de travail en exécutant la commande suivante.

git reset HEAD@{1}

Comme nous le savons, la commande utilisée pour supprimer des fichiers d’un commit est git reset. Cette commande peut être utilisée avec les options -p et -u. L’option -p permet de conserver les modifications dans le répertoire de travail mais de réinitialiser l’index. L’option -u réinitialise l’index et le répertoire de travail.

Entraînons-nous à supprimer des fichiers d’un commit avec l’exemple suivant. Supposons que nous ayons créé un nouveau commit et ajouté un fichier nommé file1. Maintenant, nous voulons supprimer ce fichier du commit. Nous pouvons commencer cela en utilisant la commande suivante.

git reset -p HEAD~1

Cette commande ordonne à Git de réinitialiser l’index et le répertoire de travail au commit HEAD~1. Avant de créer le commit, nous ajoutons le file2 au répertoire de travail. Maintenant, nous voulons supprimer ce fichier du répertoire de travail mais le conserver dans l’index. Il peut être lancé à l’aide de la commande suivante :

git reset -u HEAD~1

Cette commande ordonne à Git de réinitialiser l’index et le répertoire de travail au commit HEAD~1. Supposons maintenant que nous ayons ajouté trois fichiers à l’index et que nous voulions supprimer tous les fichiers de l’index à l’exception de file3. Nous pouvons commencer cela en utilisant la commande suivante :

git reset -- '-p -- file3'

Cette commande ordonne à Git de conserver file3 et de supprimer les autres fichiers de l’index au sein de la même branche. La commande git reset peut être utilisée pour supprimer des fichiers de n’importe quel commit. La commande peut être utilisée avec l’option -ppour conserver les modifications dans l’index et le répertoire de travail et supprimer le fichier du commit.

La commande peut aussi être utilisée avec l’option -upour réinitialiser l’index et le répertoire de travail mais garder le fichier dans le commit.

Si nous voulons supprimer un fichier d’un commit spécifique, nous pouvons utiliser la commande git reset avec l’option -hard et spécifier le commit après HEAD. Par exemple, nous pouvons exécuter la commande suivante si nous voulons supprimer le fichier "README.md" du test de validation.

git reset -hard test

Gardez à l’esprit que la commande git reset --hard annule toutes les modifications que vous avez apportées à votre répertoire de travail. Si vous avez modifié certains fichiers et supprimé d’autres, la dernière commande supprimera toutes les modifications que vous avez apportées aux fichiers encore présents dans votre zone de staging.

Cependant, supposons que nous ne voulions pas du fichier et que nous voulions le supprimer de la zone de préparation et en faire un fichier non suivi. Dans ce cas, nous utiliserons la commande git rm avec l’option --cached. Si nous voulons également le supprimer du répertoire de travail, nous ignorerons l’option --cached de cette commande.

$ git rm --cached <file-name>

Ici, nous avons presque terminé le processus de récupération de fichier. Le fichier non pertinent a été supprimé de la zone de préparation et toutes les autres modifications sont mises en scène. Maintenant, nous devons valider ces changements en utilisant la commande git commit sur la branche. Nous avons maintenant récupéré notre commit, mais cela n’inclut pas les fichiers qui ne sont pas nécessaires.

$ git commit -m "commit message"
Auteur: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

Article connexe - Git Commit