Aller au contenu principal

Fork & Clone — Contribuer à l'open source

Module 03 45 min

Objectifs de la section

  • Comprendre la différence entre fork et clone
  • Forker un projet sur GitHub
  • Configurer le remote upstream
  • Contribuer à un projet open source via une PR
  • Maintenir votre fork à jour

Fork vs Clone

ForkClone
Copie sur GitHub (dans votre compte)Copie locale sur votre machine
ConnexionIndépendant du dépôt originalLié au dépôt original
UsageContribuer à des projets où vous n'avez pas accèsTravailler sur votre propre projet
CommandeSur l'interface GitHub ou gh repo forkgit clone <url>

Forker un projet

Via l'interface GitHub

  1. Allez sur le dépôt que vous voulez forker
  2. Cliquez sur le bouton Fork (coin supérieur droit)
  3. Choisissez votre compte comme destination
  4. GitHub crée votre-username/nom-du-projet

Via GitHub CLI

# Forker un dépôt et le cloner automatiquement
gh repo fork alice/super-projet --clone

# Forker sans cloner
gh repo fork alice/super-projet

# Lister vos forks
gh repo list --fork

Configurer les remotes après un fork

# Après avoir cloné votre fork
git clone git@github.com:vous/super-projet.git
cd super-projet

# Voir les remotes actuels
git remote -v
# origin git@github.com:vous/super-projet.git (fetch)
# origin git@github.com:vous/super-projet.git (push)

# Ajouter le dépôt original comme "upstream"
git remote add upstream git@github.com:alice/super-projet.git

# Vérifier
git remote -v
# origin git@github.com:vous/super-projet.git (fetch)
# upstream git@github.com:alice/super-projet.git (fetch)

Workflow de contribution open source

# 1. Synchroniser votre fork avec le dépôt original
git fetch upstream
git switch main
git merge upstream/main
git push origin main # Mettre à jour votre fork sur GitHub

# 2. Créer une branche pour votre contribution
git switch -c fix/correction-typo-readme

# 3. Faire vos modifications et commits
# ... modifier des fichiers ...
git add .
git commit -m "fix: corriger la typo dans le README"

# 4. Pousser vers votre fork
git push -u origin fix/correction-typo-readme

# 5. Créer une Pull Request vers le dépôt original
gh pr create \
--repo alice/super-projet \
--title "fix: corriger la typo dans le README" \
--body "Corrige une faute de frappe dans la section installation"

Maintenir votre fork à jour

# Récupérer les derniers changements du projet original
git fetch upstream

# Voir ce qui a changé
git log HEAD..upstream/main --oneline

# Mettre à jour votre branche main locale
git switch main
git rebase upstream/main

# Pousser les changements vers votre fork
git push origin main

# Mettre à jour votre branche de fonctionnalité
git switch feature/ma-fonctionnalite
git rebase upstream/main

git clone en détail

# Clone standard
git clone https://github.com/utilisateur/depot.git

# Clone dans un dossier spécifique
git clone git@github.com:utilisateur/depot.git mon-dossier

# Clone superficiel (seulement le dernier commit — plus rapide)
git clone --depth 1 git@github.com:utilisateur/depot.git

# Clone d'une branche spécifique
git clone --branch feature/login git@github.com:utilisateur/depot.git

# Clone avec les submodules
git clone --recursive git@github.com:utilisateur/depot.git

Résumé des commandes clés

CommandeDescription
gh repo fork <repo>Forker un dépôt
git clone <url>Cloner un dépôt
git remote add upstream <url>Ajouter le remote original
git fetch upstreamRécupérer les changements du original
git rebase upstream/mainMettre à jour avec le original
gh pr createCréer une Pull Request

Prochaines étapes