Déploiement
Déploiement • Chapitre 10 : Déploiement avec Git et GitHub

Envoi du projet vers GitHub

Associez votre dépôt local au dépôt distant (Remote) et synchronisez vos commits via git push. Comprenez la mécanique des upstream branches, la résolution des conflits et la protection contre les réécritures d'historique dangereuses.

🔗
Git Remote

Alias mémorisé pointant vers l'URL SSH ou HTTPS de votre dépôt GitHub distant.

🚀
git push -u origin main

Transfère vos commits locaux et configure la branche de suivi amont (upstream).

🛡️
Non-Fast-Forward

Protection Git rejetant les envois en cas de divergence avec la version distante.

🛑
Interdiction du --force

La commande git push --force sur main est une faute grave détruisant le travail de l'équipe.

git-remote-push.sh
# 1. Lier le dépôt local au dépôt distant GitHub via SSH
$ git remote add origin git@github.com:mon-organisation/learnweb-app.git

# 2. Vérifier l'enregistrement des URLs de fetch et de push
$ git remote -v
origin  git@github.com:mon-organisation/learnweb-app.git (fetch)
origin  git@github.com:mon-organisation/learnweb-app.git (push)

# 3. Pousser la branche main avec suivi amont (-u)
$ git push -u origin main
Enumerating objects: 38, done.
Counting objects: 100% (38/38), done.
Delta compression using up to 8 threads
Compressing objects: 100% (32/32), done.
Writing objects: 100% (38/38), 184.22 KiB | 5.26 MiB/s, done.
Total 38 (delta 4), reused 0 (delta 0), pack-reused 0
To github.com:mon-organisation/learnweb-app.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.

Guide Approfondi & Architecture Système

1. Que Signifie l'Option -u (ou --set-upstream) ?

Lors du premier envoi, le paramètre -u indique à Git :

« À partir de maintenant, ma branche locale main est liée à la branche distante origin/main. » Grâce à cette liaison permanente, vous n'aurez plus besoin de taper git push origin main à chaque fois : un simple git push ou git pull suffira amplement.

2. Gérer le Rejet de Push (Updates were rejected because the remote contains work...)

Cette erreur survient si un fichier a été créé directement sur GitHub (par ex. un README ou une licence) que votre machine locale ne possède pas encore :
  1. Ne forcez JAMAIS avec --force.
  2. Rapatriez d'abord les modifications distantes : git pull --rebase origin main
  3. Git applique vos commits locaux au sommet de l'historique distant.
  4. Renvoyez ensuite proprement : git push origin main.

Tableau de Diagnostic des Commandes de Synchronisation Git

CommandeSens du FluxImpact en Production
git pushLocal ➔ Serveur GitHubDéclenche automatiquement les webhooks de déploiement
git fetchGitHub ➔ Métadonnées localesTélécharge l'historique sans toucher à vos fichiers de travail
git pullGitHub ➔ Local (Merge/Rebase)Met à jour votre code local avec les dernières versions validées
git push origin --delete ma-brancheLocal ➔ Suppression distanteNettoie une branche de fonctionnalité une fois déployée