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
Où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​