GIT - 4 Commits et fichiers
Git fonctionne en enregistrant l'état des fichiers que vous lui demandez de suivre, sous forme d'unités atomiques appelées commits. Un commit peut contenir un ou plusieurs changements de fichiers, et représente un instantané cohérent du projet à un moment donné. C'est la brique de base de tout l'historique versionné.
Git versionne des fichiers, pas des dossiers
Il est important de noter que Git suit uniquement des fichiers, et non des dossiers en tant que tels. Cela signifie qu'un dossier vide ne peut pas être committé : Git le considèrera comme inexistant. Si vous travaillez avec une technologie qui exige la présence de certains dossiers (par exemple un dossier logs/ ou tmp/), une astuce consiste à y créer un fichier factice vide — typiquement nommé .gitkeep — pour forcer Git à conserver le dossier dans le repository.
mon-projet/
├── logs/
│ └── .gitkeep # force Git à conserver le dossier
└── src/
Les commits vivent sur une branche
Lorsque vous apportez des changements et que vous les validez, les commits sont enregistrés sur une timeline appelée branche. Un repository Git aura normalement au moins une branche, et par défaut cette branche s'appelle master (ou main dans les versions récentes de Git et sur GitHub).
- Un commit = un instantané daté de l'état des fichiers
- Plusieurs commits forment une timeline chronologique
- Une branche est le nom donné à cette timeline
- La branche par défaut s'appelle
master(oumain)
Des branches supplémentaires peuvent évidemment être créées pour isoler des développements parallèles, mais nous couvrirons cela plus en détail dans une section ultérieure. Pour l'instant, le travail initial se fera intégralement sur la branche principale.
En résumé
Git enregistre l'état actuel des fichiers dans des commits, qui peuvent contenir un ou plusieurs changements. Les commits sont organisés sur une timeline appelée branche, et tout référentiel Git possède par défaut au moins une branche (généralement nommée "master" ou "main"). Bien que les versions Git soient des fichiers et non des dossiers, il est possible de créer des fichiers fictifs vides pour forcer Git à conserver les dossiers lors de modifications.
Points clés
- Les commits enregistrent l'état complet de tous les fichiers à un moment donné
- Git suit les fichiers, pas les répertoires vides
- Créer des fichiers factices (dummy files) permet de conserver la structure des dossiers
- Les commits sont enregistrés sur une timeline appelée branche
- Tout repo Git possède au minimum une branche (master/main)
- Des branches supplémentaires peuvent être créées pour différentes lignes de travail
Questions fréquentes
Pourquoi créer des fichiers fictifs vides dans Git ?
Parce que Git suit les fichiers, pas les dossiers vides. Pour conserver la structure d'un dossier vide, on crée un fichier factice (souvent nommé `.gitkeep` ou `.placeholder`) afin que Git enregistre le dossier.
Qu'est-ce qu'une branche dans Git ?
C'est une timeline sur laquelle les commits sont enregistrés. Tout référentiel Git possède au moins une branche par défaut (master/main), et d'autres branches peuvent être créées pour travailler en parallèle.
Un commit peut-il modifier plusieurs fichiers à la fois ?
Oui, un commit peut enregistrer l'état de plusieurs fichiers modifiés dans une seule action, groupant ainsi les changements liés.