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 !

Qu’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èreMonorepoPolyrepo
Build & CICache et build incrémental indispensables, sinon pipelines lents.Pipelines courts et ciblés.
Partage de codeFacile ; une seule source de vérité.Packages publiés, risque de dérive de versions.
Cohérence techRègles et lint communs, updates atomiques.Standards variables selon les dépôts.
Autonomie des équipesPlus faible, coordination centrale nécessaire.Haute, déploiements indépendants.
Contrôle d’accèsGlobal, plus complexe à restreindre.Granulaire par dépôt.
Scalabilité organisationnelleExige un outillage robuste pour rester rapide.Risque de duplications, mais croissance linéaire.

Vos premiers pas avec Git

Installer Git sur Windows

  1. Téléchargez la dernière version sur Git for Windows  . 
  2. Lancez l’installateur et suivez l’assistant pas à pas.
  3. Ouvrez Git Bash (ou l’invite de commandes standard si vous l’avez laissée active).
  4. 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

  • Les hooks sont des scripts déclenchés par Git (ex. pre-commit, pre-push). 
  • Exemple : lancer black et flake8 avant chaque commit ; empêcher le push si les tests échouent.
  • Outil 2025 recommandé : pre-commit framework (YAML, portable).

# 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.

 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.

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.

 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.

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *