
- juillet 7, 2025
- Equipe journal IT
- 0
Avez-vous déjà perdu des heures à chercher une ancienne version de votre code ? Ou paniqué à l’idée d’écraser par erreur le travail d’un collègue ? Si c’est votre cas, vous n’êtes pas seul ! Ces frustrations courantes hantent de nombreux développeurs, débutants ou confirmés.
Git et GitHub sont devenus incontournables dans le monde du développement logiciel. Que vous soyez étudiant, professionnel ou simplement passionné par le code, maîtriser ces outils vous fait gagner du temps et évite bien des crises de nerfs.
Dans cet article, nous allons démystifier Git et GitHub pas à pas. Vous découvrirez comment gérer efficacement vos projets, collaborer sereinement avec d’autres développeurs, et préserver l’historique complet de vos modifications. Fini les prises de tête : préparez-vous à passer au niveau supérieur !
Table de matières
ToggleQu’est-ce que le contrôle de version et pourquoi est-il essentiel ?
Définition et principe de base
Le contrôle de version, aussi appelé gestion de versions, est un outil qui suit automatiquement toutes les modifications d’un fichier ou d’un projet. Chaque changement est enregistré, horodaté, avec son auteur.
Cela permet de revenir facilement à une version antérieure, d’identifier qui a fait quoi et de comprendre pourquoi.
Avantages : historique, collaboration, sécurité
- Historique complet : vous pouvez consulter l’évolution de chaque ligne de code et restaurer une version précédente en un clic .
- Collaboration fluide : plusieurs personnes peuvent travailler en parallèle sans écraser le travail des autres.
- Sécurité accrue : chaque version est sauvegardée localement. En cas d’erreur ou de défaillance serveur, aucun code n’est perdu .
Exemples concrets d’utilisation
- Un développeur teste une nouvelle fonctionnalité. Si ça ne fonctionne pas, il revient instantanément à une version stable.
- En équipe, chacun crée des « instantanés » (snapshots) de son travail. Les modifications sont compatibles et traçables .
Comprendre la différence entre Git et GitHub
Git : l’outil de contrôle de version local
Git est un logiciel libre installé sur votre ordinateur. Il enregistre chaque modification comme un “instantané” et fonctionne même hors ligne. Son rôle principal : conserver un historique fiable et permettre des branches rapides pour tester sans risque.
GitHub : la plateforme de partage et de collaboration basée sur Git
GitHub est un service en ligne qui héberge vos dépôts Git dans le cloud. Il ajoute des fonctions sociales comme les pull-requests, les revues de code, GitHub Actions pour l’intégration continue et la gestion des issues. Il centralise ainsi le code et facilite la collaboration.
Tableau comparatif : Git vs GitHub
Critère | Monorepo | Polyrepo |
---|---|---|
Build & CI | Cache et build incrémental indispensables, sinon pipelines lents. | Pipelines courts et ciblés. |
Partage de code | Facile ; une seule source de vérité. | Packages publiés, risque de dérive de versions. |
Cohérence tech | Règles et lint communs, updates atomiques. | Standards variables selon les dépôts. |
Autonomie des équipes | Plus faible, coordination centrale nécessaire. | Haute, déploiements indépendants. |
Contrôle d’accès | Global, plus complexe à restreindre. | Granulaire par dépôt. |
Scalabilité organisationnelle | Exige un outillage robuste pour rester rapide. | Risque de duplications, mais croissance linéaire. |
Vos premiers pas avec Git
Installer Git sur Windows
- Téléchargez la dernière version sur Git for Windows .
- Lancez l’installateur et suivez l’assistant pas à pas.
- Ouvrez Git Bash (ou l’invite de commandes standard si vous l’avez laissée active).
- Vérifiez l’installation : git version.
Installer Git sur macOS
- La plupart des versions de macOS intègrent déjà Git : lancez git version dans Terminal pour vérifier.
- Si besoin, téléchargez le macOS Git Installer officiel.
- Alternative rapide : Homebrew brew install git.
- Confirmez avec git version.
Installer Git sur Linux (Debian/Ubuntu)
Mettez vos paquets à jour :
- sudo apt update
Installez Git :
- sudo apt install git-all
([documentation.ubuntu.com](https://documentation.ubuntu.com/ubuntu-for-developers/explanation/use-vcs/?utm_source=chatgpt.com))
Vérifiez l’installation :
- git version
Configurer votre identité globale
- git config –global user.name “Votre Nom”
- git config –global user.email “vous@example.com”
- git config –global init.defaultBranch main # branche par défaut
Cette configuration signe chaque commit et évite les avertissements lors des push.
Initialiser un dépôt et suivre les changements
Créer un nouveau dépôt avec git init
cd mon-projet
git init
git init transforme votre dossier en dépôt Git ; un sous-répertoire caché .git apparaît. Vous pouvez ainsi versionner un projet existant ou démarrer à partir de zéro.
Préparer les fichiers dans la staging area avec git add
git add index.html # ajoute un fichier précis
git add . # ajoute tout le dossier
git add place les changements dans la zone de transit, la staging area. Cette étape vous permet de composer des commits propres et ciblés.
Enregistrer un snapshot immuable avec git commit
git commit -m "feat: première version du site"
Chaque commit capture tout l’état du projet à un instant T, métadonnées comprises ; rien n’est écrasé, tout est traçable.
Vérifier l’état avant de committer
git status
La commande liste ce qui est modifié, suivi ou ignoré. Parfait pour éviter d’oublier un fichier crucial.
Parcourir et visualiser l’historique
git log --oneline --graph --decorate
–oneline : condensé.
–graph : dessin de l’arbre.
–decorate : noms de branches & tags.
Pour voir les différences avant le commit :
git diff # entre le travail et la staging area
git diff --staged # entre la staging area et le dernier commit
``` :contentReference[oaicite:5]{index=5}
Enchaînez ces cinq étapes et vous maîtriserez 90 % du *workflow* Git : init → add → commit → status → log/diff. Questions ? Sinon, cap sur la **section V : Collaborer avec confiance (branches, pull requests, revue de code)** !
::contentReference[oaicite:6]{index=6}
Collaboration Git : branches, pull requests et revue de code
Pourquoi utiliser des branches ?
- Isolation des fonctionnalités : chaque branche sépare votre travail du code stable, limitant le risque de casser main.
- Flux de travail parallèles : plusieurs développeurs livrent en même temps sans conflits majeurs.
- Historique plus propre : une fois la branche fusionnée, l’ensemble des commits liés à la fonctionnalité est regroupé et traçable.
Créer et fusionner une branche
Créez une branche descriptive
git switch -c feat/login-form # Git 2.23+
# ou
git checkout -b feat/login-form # méthode classique
Utilisez un nom court, précis et cohérent (feat/, fix/, hotfix/).
Travaillez localement puis ajoutez & commettez vos changements
git add .
git commit -m "feat: ajout du formulaire de connexion"
Synchronisez votre branche distante
git push -u origin feat/login-form
Fusionnez (merge) dans main après validation
git switch main
git pull --rebase origin main # récupère la dernière version
git merge --no-ff feat/login-form # garde l’historique
git push origin main
Pull requests : le cœur de la collaboration GitHub
- Ouvrez votre PR depuis la branche distante : bouton “Compare & pull request” ou gh pr create (GitHub CLI).
- Ajoutez un titre clair + description : « feat: formulaire de connexion (issue #42) ».
- Assignez des reviewers et activez les checks CI/CD.
- Répondez aux commentaires : batch vos correctifs pour éviter un fil interminable.
- Merge après ✓ CI et ✓ approbations — idéalement < 300 lignes par PR pour des revues rapides.
Revue de code et approbation
- Outils intégrés GitHub Review : commentaires ligne-par-ligne, suggestions inline, approbation / demande de changements.
- Principes clés (Google “Standard of Code Review”) : améliorer la santé globale du code ; discuter des alternatives ; privilégier la simplicité.
- Automatiser les vérifications : activez Copilot Code Review pour un premier tri (bugs, perf) puis laissez l’humain juger la conception.
En résumé : créez des branches courtes et claires, ouvrez des pull-requests ciblées, appliquez une revue de code rigoureuse. Vous minimiserez les conflits et livrerez plus vite un code de qualité. Prêt·e pour la mise en pratique .
Techniques Git avancées
Domptez ces commandes pour un workflow plus propre, plus sûr et plus rapide.
Rebase vs merge : quand privilégier l’un ou l’autre ?
- git merge crée un commit de fusion. Il garde l’historique complet, idéal pour conserver la trace des branches.
- git rebase réécrit les commits sur une nouvelle base. L’historique devient linéaire, plus lisible, mais les anciens SHAs changent.
# mettre à jour votre branche sans commit de merge
git switch feat/login-form
git fetch origin
git rebase origin/main
Résoudre sereinement les conflits de fusion
- Lancez la fusion : git merge main.
- Git signale les fichiers en conflit ; ouvrez-les, cherchez <<<<<<<, corrigez.
- Vérifiez avec git status, puis validez :
git add chemin/fichier
git commit
- Si besoin d’abandonner : git merge –abort ou git reset –hard.
Mettre son travail de côté avec git stash
- git stash push -m “wip: refonte header” sauvegarde les changements non commités.
- Reprenez-les plus tard : git stash pop.
Cas d’usage : « git stash avant un hotfix » vous changez vite de branche sans perdre vos essais.
Copier un commit précis grâce à git cherry-pick
git switch hotfix/critical-bug
git cherry-pick a1b2c3d4
Cette commande réapplique un seul commit sur la branche courante ; pratique pour corriger un bug en production sans attendre que toute la branche soit prête.
Automatisation intelligente : hooks Git pré-commit et pré-push
# installation rapide
pip install pre-commit
pre-commit install # ajoute le hook
En résumé
Git conserve un historique fiable tandis que GitHub facilite la collaboration et l’automatisation. Installez Git, initialisez votre dépôt, puis poussez votre première branche en pull request : vous maîtriserez déjà le cycle utilisé par les plus grands projets. Commencez petit, itérez souvent Git et GitHub deviendront vos meilleurs alliés productivité.
FAQ
Comment créer un dépôt Git et le connecter à GitHub ?
Pour créer un dépôt Git, il suffit d’ouvrir le terminal, de naviguer dans le dossier du projet et de taper git init. Cela initialise Git localement. Ensuite, créez un dépôt vide sur GitHub via le bouton New repository. Copiez l’URL affichée, puis reliez votre dépôt local en tapant :
git remote add origin https://github.com/votreuser/nom-du-depot.git
git branch -M main
git push -u origin main
Ces commandes publient le projet sur GitHub et le rendent accessible en ligne.
Pourquoi utiliser Git pour le contrôle de version d’un projet ?
Git permet de sauvegarder toutes les versions du code, de suivre chaque modification et de revenir facilement à un état antérieur en cas de problème. Cela évite de perdre du travail et rend la collaboration plus sûre, car chaque contribution est enregistrée et identifiable.
Quels sont les avantages d’utiliser des branches Git dans un workflow collaboratif ?
Les branches permettent de travailler sur de nouvelles fonctionnalités ou corrections sans affecter la version principale du projet. Chaque membre de l’équipe peut créer sa propre branche, tester ses changements, puis fusionner son travail une fois validé. Cela réduit les erreurs et facilite la gestion des mises à jour.
Comment automatiser les tests et la mise en production avec GitHub Actions ?
GitHub Actions est un outil intégré qui déclenche des workflows automatiques. Par exemple, il est possible de configurer un fichier YAML dans le dossier .github/workflows pour lancer des tests dès qu’un commit est poussé ou pour déployer l’application après validation. Il suffit de choisir un modèle prêt à l’emploi ou de créer son propre scénario d’automatisation.
Comment résoudre les conflits de fusion (merge conflicts) dans Git ?
Lorsqu’un conflit survient, Git marque les fichiers concernés avec des délimiteurs <<<<<<<, ======= et >>>>>>>. Il faut ouvrir ces fichiers, choisir quelles modifications conserver, supprimer les marqueurs puis sauvegarder. Ensuite, il suffit de faire git add pour valider la résolution et git commit pour enregistrer la fusion proprement.