Git & GitHub - Guide Interactif

Apprenez facilement les bases du contrôle de version

Introduction

Bienvenue dans ce guide interactif sur Git et GitHub ! Que vous soyez débutant en programmation ou développeur expérimenté, comprendre ces outils est essentiel pour collaborer efficacement sur des projets de code.

Qu'est-ce que Git ?

Git est un système de contrôle de version distribué qui permet de suivre les modifications de code, de collaborer avec d'autres développeurs et de revenir à des états antérieurs de votre projet. Il a été créé par Linus Torvalds en 2005 pour le développement du noyau Linux.

Qu'est-ce que GitHub ?

GitHub est une plateforme web qui utilise Git comme système de gestion de version sous-jacent. Elle fournit une interface graphique et des fonctionnalités additionnelles pour faciliter la collaboration, comme les pull requests, les issues, et l'hébergement de code.

Différence entre Git et GitHub

Aspect Git GitHub
Définition Système de contrôle de version Plateforme d'hébergement basée sur Git
Interface Principalement ligne de commande Interface web graphique
Installation Nécessite installation locale Service en ligne accessible via navigateur
Fonctionnement Fonctionne sans internet Nécessite une connexion internet
Collaboration Collaboration via dépôts partagés Outils sociaux (issues, PR, discussions, wikis)

En résumé : Git est l'outil de contrôle de version, tandis que GitHub est un service web qui utilise Git comme technologie sous-jacente et y ajoute des fonctionnalités de collaboration.

Installation et Configuration

Installation de Git

Windows
macOS
Linux
  1. Téléchargez l'installateur depuis git-scm.com
  2. Exécutez l'installateur et suivez les instructions
  3. Vous pouvez conserver les options par défaut lors de l'installation
  4. Une fois installé, vous pourrez utiliser Git Bash ou Git CMD pour exécuter les commandes Git

Il existe plusieurs façons d'installer Git sur macOS :

  1. Via Homebrew :
    $ brew install git
  2. Via l'installateur :

    Téléchargez l'installateur depuis git-scm.com

  3. Via Xcode :

    Installez les Xcode Command Line Tools qui incluent Git

    $ xcode-select --install

Utilisez le gestionnaire de paquets de votre distribution :

Debian/Ubuntu :

$ sudo apt update
$ sudo apt install git

Fedora :

$ sudo dnf install git

CentOS/RHEL :

$ sudo yum install git

Arch Linux :

$ sudo pacman -S git

Configuration de base

Après l'installation, configurez votre identité Git :

# Configuration de votre nom d'utilisateur
$ git config --global user.name "Votre Nom"

# Configuration de votre email
$ git config --global user.email "votre.email@exemple.com"

# Vérification de la configuration
$ git config --list

Conseil : Utilisez le paramètre --global pour que la configuration s'applique à tous vos projets. Pour une configuration spécifique à un projet, omettez ce paramètre et exécutez la commande dans le répertoire du projet.

Les 3 zones de Git

Comprendre les trois zones principales de Git est essentiel pour maîtriser son fonctionnement. Ces zones représentent différents états de vos fichiers durant le cycle de développement.

1
Working Directory

C'est votre répertoire de travail où vous créez, modifiez et supprimez des fichiers. Ces modifications ne sont pas encore sauvegardées dans Git.

État des fichiers : Untracked ou Modified

2
Staging Area

Zone intermédiaire où vous préparez les modifications que vous souhaitez inclure dans votre prochain commit. Les fichiers y sont indexés avec la commande git add.

État des fichiers : Staged

3
Repository

Base de données où Git stocke l'historique complet des modifications. Une fois que vous avez validé vos changements avec git commit, ils sont enregistrés ici.

État des fichiers : Committed

Flux de travail typique

  1. Vous modifiez des fichiers dans votre Working Directory
  2. Vous ajoutez les modifications à suivre dans la Staging Area avec git add
  3. Vous validez ces modifications préparées dans votre Repository avec git commit

Commandes Fondamentales de Git

Voici les commandes Git les plus importantes que vous devez connaître pour utiliser efficacement Git dans vos projets. Chaque commande est accompagnée d'exemples et d'explications détaillées.

git init

Initialise un nouveau dépôt Git dans le répertoire courant. Cette commande crée un sous-répertoire caché .git qui contient toute la structure nécessaire pour le versionnement.

# Initialiser un nouveau dépôt Git
$ git init

# Initialiser un nouveau dépôt avec un nom spécifique
$ git init mon-projet

git clone

Crée une copie locale d'un dépôt distant. Cette commande télécharge tous les fichiers et l'historique complet du projet.

# Cloner un dépôt
$ git clone https://github.com/utilisateur/depot.git

# Cloner dans un dossier spécifique
$ git clone https://github.com/utilisateur/depot.git mon-dossier

git add

Ajoute des fichiers à la zone de staging. Ces fichiers seront inclus dans le prochain commit.

# Ajouter un fichier spécifique
$ git add fichier.txt

# Ajouter tous les fichiers modifiés
$ git add .

# Ajouter tous les fichiers d'un type spécifique
$ git add *.js

git commit

Enregistre les modifications dans le dépôt. Chaque commit doit avoir un message descriptif expliquant les changements effectués.

# Créer un commit avec un message
$ git commit -m "Description des modifications"

# Ajouter les fichiers modifiés et créer un commit
$ git commit -am "Description des modifications"

Exemples :

git init

Initialise un nouveau dépôt Git dans le répertoire courant. Cette commande crée un sous-répertoire caché .git qui contient toute la structure nécessaire pour le versionnement.

# Initialiser un nouveau dépôt Git
$ git init

# Initialiser un nouveau dépôt avec un nom spécifique
$ git init mon-projet

git clone

Crée une copie locale d'un dépôt distant. Cette commande télécharge tous les fichiers et l'historique complet du projet.

# Cloner un dépôt
$ git clone https://github.com/utilisateur/depot.git

# Cloner dans un dossier spécifique
$ git clone https://github.com/utilisateur/depot.git mon-dossier

git add

Ajoute des fichiers à la zone de staging. Ces fichiers seront inclus dans le prochain commit.

# Ajouter un fichier spécifique
$ git add fichier.txt

# Ajouter tous les fichiers modifiés
$ git add .

# Ajouter tous les fichiers d'un type spécifique
$ git add *.js

git commit

Enregistre les modifications dans le dépôt. Chaque commit doit avoir un message descriptif expliquant les changements effectués.

# Créer un commit avec un message
$ git commit -m "Description des modifications"

# Ajouter les fichiers modifiés et créer un commit
$ git commit -am "Description des modifications"

Exemples :

Bonnes pratiques

Pour Git

  • Commits atomiques : Chaque commit devrait représenter une seule modification logique complète
  • Messages de commit clairs : Soyez descriptif et concis dans vos messages
  • Utilisez .gitignore : Évitez de versionner des fichiers inutiles (logs, builds, dépendances)
  • Commit souvent : Des commits fréquents facilitent le suivi des changements
  • Pull avant Push : Récupérez les dernières modifications avant d'envoyer les vôtres
  • Branches thématiques : Créez des branches pour chaque fonctionnalité ou correction

Pour GitHub

  • README détaillé : Documentez votre projet avec un README complet
  • Pull Requests ciblées : Gardez vos PR de taille raisonnable et centrées sur un sujet
  • Code review : Faites réviser votre code avant de le fusionner
  • Issues bien documentées : Soyez précis dans la description des problèmes
  • Utilisez les Actions : Automatisez vos tests et déploiements avec GitHub Actions
  • Licences : Ajoutez une licence à votre projet pour clarifier les conditions d'utilisation

Convention pour les messages de commit

Un format populaire est le Conventional Commits. Voici comment structurer vos messages de commit :

type(scope): sujet

corps

pied

Exemples :

Workflow GitHub

Le workflow GitHub est une approche collaborative qui permet aux équipes de travailler efficacement sur des projets. Voici les étapes principales :

Fork & Clone
Développement
Push
Pull Request
Review & Merge

Pour les contributeurs

  1. Fork du projet original vers votre compte GitHub
  2. Clone de votre fork en local
  3. Création d'une nouvelle branche pour vos modifications
  4. Développement et commits de vos changements
  5. Push de la branche vers votre fork
  6. Création d'une Pull Request vers le projet original

Pour les mainteneurs

  1. Revue du code soumis dans la Pull Request
  2. Discussion et demande de modifications si nécessaire
  3. Tests automatisés et validation
  4. Merge de la Pull Request
  5. Déploiement des changements

Ressources supplémentaires

Outils recommandés

Interfaces graphiques

Extensions d'éditeur

  • Git Lens (VS Code)
  • Git History (VS Code)
  • GitToolBox (JetBrains)

Services supplémentaires

Conclusion

Git et GitHub sont des outils essentiels pour le développement moderne de logiciels. Que vous travailliez seul ou en équipe, la maîtrise de ces outils vous permettra :

Historique complet

Gardez trace de chaque modification avec la possibilité de revenir à n'importe quel état

Collaboration efficace

Travaillez avec d'autres sans écraser leurs modifications

Développement parallèle

Travaillez sur plusieurs fonctionnalités simultanément

Sécurité et sauvegarde

Protégez votre code contre les pertes accidentelles

Continuez à pratiquer et à explorer ces outils pour devenir plus efficace dans vos projets de développement. N'hésitez pas à consulter les ressources supplémentaires mentionnées pour approfondir vos connaissances.