Enregistrez la journée avec Git et supprimez-la de l’historique des commits

Avez-vous rencontré des erreurs ou des problèmes avec les validations Git tout en travaillant avec Git? Peut-être qu’un secret errant ou des données sensibles ont été enregistrés. Heureusement, vous pouvez traiter vos fichiers avec Git et les supprimer de la validation et corriger l’historique.

Si vous avez effectué plusieurs validations ou cloné un dépôt avec un historique de validations déjà existant, vous voudrez probablement revenir en arrière et voir toutes les validations qui ont été effectuées. Et dans ce tutoriel, vous apprendrez comment supprimer une entrée de votre historique Git.

Lisez la suite et sauvez la journée avec Git!

Prérequis

Ce tutoriel comprend des instructions étape par étape. Si vous souhaitez suivre, assurez-vous d’avoir les éléments suivants en place:

  • A local machine to test the Git commands – This tutorial uses Windows 10, but later versions will also work.
  • Git Bash – Ce tutoriel utilise Git Bash 2.36.

Suppression d’un fichier de validation Git

Lorsque vous travaillez sur Git en équipe, vous effectuez des centaines de validations par jour. Par conséquent, il y a de fortes chances que vous ayez besoin d’annuler une validation particulière, par exemple en raison d’un fichier incorrect ou de plusieurs fichiers. Cette demande est généralement causée par un changement de code ou de configuration et devient un problème.

Pour résoudre ce problème, vous devrez supprimer le fichier ou les fichiers multiples de la validation Git en exécutant des commandes Git. Vous utiliserez l’un des outils populaires pour supprimer un seul fichier de la validation Git, l’outil Git Bash.

1. Ouvrez l’outil Git Bash sur votre machine Windows.

2. Ensuite, exécutez la commande ci-dessous pour créer un dossier de dépôt et passer à ce dossier. Ces commandes ne fournissent pas de sortie dans le terminal. Mais assurez-vous de remplacer ~/Desktop/Repository/repo1 par le chemin et le nom de dossier préférés.

# Crée le dossier Repository et le sous-dossier repo1
mkdir -p ~/Desktop/Repository/repo1
# Change le répertoire de travail vers repo1
cd ~/Desktop/Repository/repo1

3. Exécutez les commandes suivantes pour initialiser votre dépôt et créer deux fichiers texte nommés test1.txt et test2.txt.

# Initialise le dépôt local (crée un dossier caché .git)
git init
# Crée deux fichiers texte
touch test_file1.txt test_file2.txt
Initializes the local repository

4. Maintenant, exécutez la commande ci-dessous pour vérifier l’état du commit Git.

git status

Après avoir exécuté la commande, vous remarquerez que les commits ne sont pas suivis et pas encore validés, comme indiqué ci-dessous.

Checking the status of Git commits on the Git terminal

5. Exécutez la commande git add ci-dessous pour ajouter les deux fichiers texte que vous avez créés à l’étape trois (test_file1.txt et test_file2.txt) à votre dépôt local.

Cette commande ne fournit pas de sortie mais ajoute les fichiers sans les pousser vers le dépôt distant.

git add .

6. Ensuite, exécutez la commande git commit ci-dessous pour que Git suive les progrès et les modifications que vous avez apportés dans le dépôt local.

git commit -m "Adding two new files test_file1.txt and text_file2.txt"
Committing Changes to Repository

7. Après avoir validé, exécutez la commande ci-dessous pour supprimer un fichier spécifique (test_file2.txt) du commit Git.

git rm --cached test_file2.txt
Removing a Specific File from the Git Commit

8. Enfin, réexécutez la commande git status ci-dessous pour vérifier l’état du dépôt.

git status

Comme vous pouvez le voir ci-dessous, le fichier a été supprimé de la zone de mise en scène (le commit Git) et montre le fichier (test_file2.txt) sous Fichiers non suivis.

Verifying the Removed Git Commit (test_file2.txt)

Suppression de tous les fichiers récemment validés

Vous venez d’apprendre à supprimer un fichier spécifique du commit Git. Mais généralement, vous devrez supprimer plusieurs fichiers, et Git est à la hauteur de la tâche avec la commande git reset. La commande git reset est un outil complexe mais, en même temps, polyvalent pour annuler les changements dans le dépôt.

Pour voir comment fonctionne git reset, vous validerez quelques fichiers, puis réinitialiserez les modifications pour supprimer les fichiers récemment validés stockés dans le commit Git:

1. Créez deux nouveaux fichiers texte nommés test_file3.txt et test_file4.txt dans le dossier ~/Desktop/Repository/repo1.

touch test_file3.txt test_file4.txt

2. Ensuite, exécutez la commande git add ci-dessous, qui ne fournit pas de sortie mais ajoute les nouveaux fichiers texte à votre dépôt local (~/Desktop/Repository/repo1).

git add .

3. Exécutez la commande git commit ci-dessous pour valider les fichiers afin que Git suive les progrès et les modifications que vous avez apportés dans le dépôt.

git commit -m "Adding two more files"
Committing Changes to the Repository

4. Maintenant, exécutez la commande ci-dessous pour vérifier l’état de votre dépôt local.

git status

Comme vous pouvez le voir ci-dessous, la sortie affiche le message « nothing to commit », ce qui indique que tout est en place dans le dépôt.

Checking the Status of Git Commits

5. Ensuite, exécutez la commande git reset ci-dessous pour revenir en arrière sur les commits récemment effectués à l’étape trois. Cette commande ne fournit pas de sortie mais supprime les fichiers test_file3.txt et test_file4.txt.

git reset --soft HEAD~1

Vous pouvez également utiliser git reset –soft HEAD^ pour supprimer tous les fichiers qui ont été commités jusqu’à présent.

6. Ensuite, relancez la commande git status ci-dessous pour vérifier l’état du dépôt.

git status

Ci-dessous, la sortie affiche les fichiers test_file3.txt et test_file4.txt qui doivent être commités. Cette sortie signifie les fichiers à retirer du commit Git.

Verifying the Recent Commits were Removed

Retrait de Commits Spécifiques de l’Histoire Git

Supprimer tous les fichiers commités fonctionne très bien si vous souhaitez recommencer à partir d’une feuille vierge. Mais que faire si vous avez juste besoin de supprimer un commit particulier? La commande git revert fera l’affaire tant que vous connaissez l’ID du commit.

Dans la dernière étape de la section « Retrait de Tous les Fichiers Récemment Commités », vous avez remarqué que les commits n’ont pas été commités mais modifiés. Vous allez maintenant commiter les changements pour voir la commande git revert en action.

Exécutez la commande git commit ci-dessous pour commiter les changements récents sur votre dépôt local.

git commit -m "Hello, I am committing those two files again"

Après avoir exécuté la commande, vous remarquerez que les deux fichiers texte sont à nouveau validés, et l’ID de validation est 0315b85, comme indiqué ci-dessous.

Committing the Changes in the Local Repository

Maintenant, exécutez la commande git revert ci-dessous pour annuler la validation que vous avez effectuée à l’étape précédente. Assurez-vous de remplacer 0315b85 par l’ID de votre validation.

git revert 0315b85

Vous pouvez voir ci-dessous que les deux fichiers que vous avez récemment validés ont été supprimés.

Reverting the Changes in the Local Repository

Supprimer un répertoire de l’historique des validations Git

À présent, vous savez déjà comment supprimer un fichier validé, mais qu’en est-il d’un répertoire ? Supprimer un répertoire d’une validation Git est similaire à la suppression de fichiers.

1. Exécutez les commandes ci-dessous, qui ne fournissent pas de sortie mais effectuent les actions suivantes :

  • Créez un dossier nommé myfolder à l’intérieur de votre dépôt local (~/Bureau/Depot/repo1).
  • Créez un fichier nommé l.txt à l’intérieur du dossier ~/Bureau/Depot/repo1/myfolder.
mkdir myfolder && touch myfolder/l.txt

2. Ensuite, exécutez les commandes git ci-dessous pour ajouter le nouveau dossier (~/Bureau/Depot/repo1/myfolder) à votre dépôt local.

git add .
git commit -m "Adding folder"
Adding the new folder (folder) to the Local Repository

3. Exécutez la commande git rm suivante pour supprimer le dossier (myfolder) que vous avez validé à l’étape deux.

git rm -r myfolder/
Removing the New Folder (folder) in Git Commit

4. Enfin, exécutez la commande git status pour vérifier l’état du dépôt et voir si le dossier a été supprimé.

git status

Vous pouvez voir ci-dessous que le dossier entier (myfolder) a été supprimé avec succès, ainsi que le fichier l.txt à l’intérieur.

Verifying the Folder (myfolder) Has Been Removed Successfully

Conclusion

Dans ce tutoriel, vous avez appris à travailler avec les commits de Git, tels que supprimer un commit spécifique, un fichier ou plusieurs fichiers. Vous avez également abordé la suppression d’un dossier entier dans le dépôt local et l’engagement des modifications.

À ce stade, vous pouvez confiant engager des modifications sur votre dépôt et supprimer les commits que vous jugez inutiles sans tout gâcher.

Avec ce que vous avez appris dans ce tutoriel, quelle méthode pensez-vous pourrait être excellente pour travailler avec les commits pour votre équipe?

Source:
https://adamtheautomator.com/git-and-remove-from-commit/