Résolution en suivant le fichier et bonnes pratiques
Parfois, le fichier non suivi n'est pas jetable ; c'est un travail que vous souhaitez conserver. Dans ce cas, l'approche correcte consiste à ajouter le fichier au système de suivi de Git en le committant. Cette section couvre également les bonnes pratiques pour éviter que cette erreur ne se produise en premier lieu.
Tout d'abord, revenons à la branche main et recréons notre fichier conflictuel.
cd ~/project/git-checkout-demo
git checkout main
echo "## My local changes to feature documentation" > feature.md
Méthode : Suivre le fichier
Si le fichier non suivi est important, vous devez le committer sur la branche actuelle.
-
Ajoutez le fichier à la zone de staging.
git add feature.md
-
Commitez le fichier préparé.
git commit -m "Add local version of feature.md"
Maintenant que vos modifications sont sauvegardées en toute sécurité sur la branche main, Git peut gérer le changement. Lorsque vous checkout la feature-branch, Git remplacera simplement le fichier de l'espace de travail par la version de cette branche.
git checkout feature-branch
Le checkout est réussi. Vos modifications committées sont en sécurité dans l'historique de la branche main.
Bonne pratique : Utiliser .gitignore
Pour empêcher que certains fichiers (comme les journaux, les artefacts de build ou les fichiers d'environnement) ne soient jamais suivis, vous devez utiliser un fichier .gitignore. Git ignorera tous les fichiers ou répertoires correspondant aux motifs dans .gitignore, les empêchant de devenir des fichiers non suivis conflictuels.
Créons un fichier .gitignore pour ignorer tous les fichiers .log.
## Revenir à main pour ajouter le fichier .gitignore
git checkout main
## Créer le fichier .gitignore
echo "*.log" > .gitignore
Maintenant, créez un fichier journal.
touch app.log
Vérifiez le statut.
git status
Remarquez que app.log n'apparaît pas comme un fichier non suivi. Cependant, le fichier .gitignore lui-même est non suivi.
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
nothing added to commit but untracked files present (use "git add" to track)
Vous devriez toujours committer votre fichier .gitignore afin que les règles soient partagées sur l'ensemble du projet.
git add .gitignore
git commit -m "Add .gitignore to ignore log files"
En committant fréquemment et en utilisant .gitignore efficacement, vous pouvez réduire considérablement les risques de rencontrer cette erreur de checkout.