Git devient réellement utile lorsque vous savez décrire l'état d'un projet avant de le modifier et prouver ensuite ce que contient chaque branche. Ce cours pratique construit cette base avec des dépôts locaux, des instantanés préparés, un historique lisible, l'isolation des branches et des règles d'exclusion explicites.
Vous configurerez l'identité des commits, transformerez des répertoires ordinaires en dépôts, examinerez les modifications ligne par ligne et ferez passer les fichiers de l'arbre de travail à l'index puis à l'historique. Le défi final applique ce flux à Nginx : conserver une base sur le port 80 tout en développant une variante sur le port 443 dans une branche séparée.
Ce que vous apprendrez
- Vérifier Git et configurer globalement le nom et l'adresse des commits
- Initialiser un dépôt local et identifier ses métadonnées cachées
.git - Distinguer les états non suivi, modifié, indexé, validé et ignoré
- Examiner les modifications avec
git diffavant l'indexation et le commit - Lire l'historique complet et condensé avec
git logetgit log --oneline - Créer, changer et valider sur une branche de fonctionnalité tout en préservant son isolation
- Écrire et vérifier une règle
*.logavec.gitignoreetgit check-ignore
À qui s’adresse ce cours
Ce cours intermédiaire s'adresse aux utilisateurs Linux, développeurs, administrateurs système et apprenants DevOps qui veulent un flux Git local fiable pour du code ou des configurations. Il est particulièrement utile si l'index, l'historique ou la relation entre branches et fichiers reste floue.
Prérequis : Bases du terminal Linux et de la modification de fichiers. Aucune expérience Git ni aucun compte d'hébergement en ligne n'est requis.
Environnement d’apprentissage : Un terminal Linux LabEx avec Git et des dépôts locaux préparés ; tout le travail reste sur la machine du laboratoire.
Questions fréquentes
Le cours couvre-t-il GitHub ou la collaboration distante ?
Non. Il porte entièrement sur Git local : configuration, initialisation, état, indexation, commits, historique, branches et exclusions. Aucun remote n'est configuré et clone, fetch, pull et push ne sont pas utilisés.
Vais-je fusionner la branche ou résoudre des conflits ?
Non. Vous validez sur des branches isolées puis revenez à la branche principale pour prouver que ses fichiers sont inchangés. Fusion, rebase et résolution de conflits sont hors périmètre.
Que démontre le dépôt final ?
La branche principale conserve la base Nginx avec listen 80;. La branche secure_mode contient la règle *.log et le passage à listen 443; validés, montrant qu'un travail peut avancer sans modifier la base.





