TP4 — GitHub & Dépôts distants
Travaux Pratiques 60 min Module 03
Objectifs
À la fin de ce TP, vous aurez :
- Poussé un projet local sur GitHub
- Configuré les remotes origin et upstream
- Cloné un dépôt existant
- Forké un dépôt et soumis une Pull Request
- Synchronisé votre fork avec le dépôt original
Partie 1 : Pousser un projet local sur GitHub
# Créer un nouveau projet local
mkdir git-tp4-github
cd git-tp4-github
git init
echo "# Mon Projet GitHub" > README.md
echo "Un projet créé pendant le TP4 du cours Git & GitHub." >> README.md
Créez app.py :
def bonjour(nom):
"""Retourner un message de salutation."""
return f"Bonjour, {nom} ! Bienvenue sur GitHub."
if __name__ == "__main__":
print(bonjour("GitHub"))
git add .
git commit -m "feat: projet initial pour TP4 GitHub"
# Créer le dépôt sur GitHub via CLI
gh repo create git-tp4-github \
--public \
--description "TP4 - Initiation à GitHub et aux dépôts distants" \
--source . \
--push
# Vérifier que le push a fonctionné
gh repo view --web
Partie 2 : Travailler avec les remotes
# Vérifier les remotes configurés
git remote -v
# Faire quelques modifications et pousser
echo "\n## Changelog\n\n- Version initiale" >> README.md
git add README.md
git commit -m "docs: ajouter le changelog au README"
git push
# Vérifier sur GitHub
gh repo view --web
Simuler la collaboration (deux machines)
# Simuler qu'un collègue a poussé un changement
# (Modifiez directement via l'interface GitHub : éditez README.md)
# Puis récupérez les changements
# Méthode 1 : fetch puis inspecter
git fetch origin
git log HEAD..origin/main --oneline
git diff HEAD origin/main
# Appliquer les changements
git merge origin/main
# Méthode 2 : pull direct
git pull --rebase origin main
Partie 3 : Branches distantes
# Créer une branche de fonctionnalité et la pousser
git switch -c feature/amelioration-salutation
# Modifier app.py
Mettez à jour app.py :
def bonjour(nom, langue="fr"):
"""Retourner un message de salutation multilingue."""
messages = {
"fr": f"Bonjour, {nom} !",
"en": f"Hello, {nom}!",
"es": f"¡Hola, {nom}!",
"ar": f"مرحباً، {nom}!"
}
return messages.get(langue, messages["fr"])
if __name__ == "__main__":
for langue in ["fr", "en", "es", "ar"]:
print(bonjour("GitHub", langue))
git add app.py
git commit -m "feat: ajouter support multilingue pour les salutations"
# Pousser la branche distante
git push -u origin feature/amelioration-salutation
# Voir les branches distantes
git branch -a
# Créer une PR
gh pr create \
--title "feat: salutations multilingues" \
--body "Ajoute le support pour le français, l'anglais, l'espagnol et l'arabe." \
--base main
Partie 4 : Fork et contribution
# Trouver un dépôt d'exercice à forker
# Utilisez le dépôt d'exercice du cours :
gh repo fork devopsgodhrehouma/git-exercise-tp4 --clone
cd git-exercise-tp4
# Vérifier les remotes
git remote -v
# Ajouter l'upstream
git remote add upstream git@github.com:devopsgodhrehouma/git-exercise-tp4.git
git remote -v
# Créer une branche pour votre contribution
git switch -c fix/votre-nom-amelioration
# Faire une modification (par exemple, ajouter votre nom dans CONTRIBUTORS.md)
echo "- Votre Nom (@votre-github)" >> CONTRIBUTORS.md
git add CONTRIBUTORS.md
git commit -m "docs: ajouter mon nom aux contributeurs"
git push -u origin fix/votre-nom-amelioration
# Créer la PR
gh pr create \
--repo devopsgodhrehouma/git-exercise-tp4 \
--title "docs: ajouter Votre Nom aux contributeurs" \
--body "Ajout de mon nom à la liste des contributeurs."
Partie 5 : Synchroniser votre fork
# Récupérer les changements du dépôt original
git fetch upstream
# Voir ce qui a changé
git log HEAD..upstream/main --oneline
# Mettre à jour votre main local
git switch main
git rebase upstream/main
# Mettre à jour votre fork sur GitHub
git push origin main
# Vérifier que votre fork est à jour
gh repo view --web
Checklist de validation
- Le projet est visible sur
github.com/VOTRE_USERNAME/git-tp4-github -
git remote -vaffiche origin correctement configuré - La branche
feature/amelioration-salutationest visible sur GitHub - Une Pull Request a été créée (même si vous ne pouvez pas la fusionner)
- Le fork a été synchronisé avec upstream
Résumé
Dans ce TP vous avez pratiqué :
- La connexion d'un dépôt local à GitHub
- Le travail avec des branches distantes
- Le processus complet de fork et contribution
- La synchronisation avec les dépôts upstream
Vous êtes prêt pour le Module 04 — Collaboration & Pull Requests !