Back

Corriger les fichiers manquants entre local et distant dans Git : Un guide étape par étape

Corriger les fichiers manquants entre local et distant dans Git : Un guide étape par étape

Voyez-vous des fichiers dans votre branche locale mais pas dans le dépôt distant ? Vous rencontrez peut-être un problème de .gitignore ou d’autres problèmes de suivi. Lorsque certains chemins sont listés dans .gitignore, Git ne suivra pas ces fichiers, ce qui les fera disparaître une fois que vous aurez poussé vers le dépôt distant.

Points clés

  • .gitignore peut masquer des fichiers essentiels, les empêchant d’être poussés.
  • Utilisez les règles ! dans .gitignore pour autoriser des fichiers ou dossiers spécifiques.

Pourquoi les fichiers disparaissent dans Git

.gitignore peut contenir des règles qui indiquent à Git d’ignorer des répertoires ou des modèles de fichiers. Si ces répertoires ou fichiers sont importants—comme des images, des journaux ou des configurations—ils ne seront pas validés ni poussés, causant des fichiers manquants sur la branche distante.

Problème courant avec .gitignore

Par exemple :

// à l'intérieur du fichier .gitignore
public/files

Cela ignore tout ce qui se trouve dans public/files/. Tout fichier ou dossier à cet endroit ne sera pas validé, entraînant des problèmes de fichiers manquants à cause de .gitignore.

Comment corriger les fichiers manquants dans Git

Étape 1 : Vérifier si un fichier est ignoré

Si un fichier est présent localement mais manquant à distance, vérifiez si .gitignore l’ignore :

git check-ignore -v public/files/data.json

Si la commande fait référence à .gitignore, le fichier est ignoré.

Étape 2 : Ajuster les règles de .gitignore

Vous pouvez autoriser des dossiers ou fichiers spécifiques :

public/files
!public/files/documents/
!public/files/logs/
  • public/files ignore le dossier entier.
  • !public/files/documents/ et !public/files/logs/ permettent de suivre ces sous-dossiers.

Étape 3 : Effacer les fichiers ignorés en cache

Si des fichiers étaient précédemment suivis ou sont dans l’index :

git rm -r --cached public/files

Cela les supprime de l’index de Git (pas de votre machine locale) afin que les nouvelles règles puissent s’appliquer.

Étape 4 : Rajouter les fichiers autorisés

Après avoir effacé le cache :

git add public/files/documents/ public/files/logs/
git commit -m ""Re-adding important files""
git push origin main

Étape 5 : Vérifier les fichiers dans le dépôt distant

Utilisez :

git ls-tree -r origin/main --name-only | grep ""public/files/""

S’ils apparaissent, le problème est résolu.

Conclusion

Face à des fichiers manquants entre local et distant dans Git, notamment en raison des règles .gitignore, la mise à jour de vos modèles d’ignorance et la réintégration des fichiers nécessaires résout le problème. Suivez ces étapes pour vous assurer que les ressources cruciales ne sont pas silencieusement ignorées.

FAQ

Non. 'git rm -r --cached' les supprime de l'index de Git mais pas de votre machine locale.

Utilisez 'git check-ignore -v [chemin]'. Cela vous montrera quelle règle ignore le fichier.

Oui. Utilisez un modèle '!nomfichier' dans .gitignore. Si nécessaire, vous pouvez forcer l'ajout de fichiers avec 'git add -f'.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers