Comment faire un Push
Ce guide explique en détail comment soumettre votre projet sur Gitea avec Git.
📋 Prérequis
✅ Vérifier les prérequis
Avant de commencer, assurez-vous d'avoir : - ✅ Git installé sur votre machine - ✅ Votre compte Gitea créé - ✅ Repository cloné localement ### Vérifier que Git est installégit --version
# Résultat attendu : git version 2.x.x
Si Git n'est pas installé :
**Ubuntu/Debian :**
sudo apt update
sudo apt install git
**macOS :**
brew install git
**Windows :**
Téléchargez depuis : https://git-scm.com/download/win
🔧 Configuration initiale de Git
⚙️ Configurer votre identité
# Votre nom
git config --global user.name "Jean Dupont"
# Votre email
git config --global user.email "jean.dupont@students.zohrabi.cloud"
# Vérifier la configuration
git config --list
📥 Cloner votre repository
📂 Première fois : Clonage
# Remplacer par VOTRE nom d'utilisateur et groupe
git clone https://git.zohrabi.cloud/Groupe-A/jean.dupont-tds.git
# Entrer dans le dossier
cd jean.dupont-tds
Lors du clone, Git vous demandera :
- **Username** : `jean.dupont`
- **Password** : votre mot de passe Gitea
🏗️ Workflow complet de soumission
📝 Étape 1 : Créer/modifier vos fichiers
Créez votre projet dans le dossier cloné :# Exemple : Créer les fichiers nécessaires
touch Dockerfile
touch docker-compose.yml
mkdir app
touch app/index.html
🔍 Étape 2 : Vérifier l'état de Git
# Voir les fichiers modifiés
git status
Résultat :
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
Dockerfile
docker-compose.yml
app/
nothing added to commit but untracked files present
➕ Étape 3 : Ajouter les fichiers au staging
# Ajouter tous les fichiers
git add .
# OU ajouter des fichiers spécifiques
git add Dockerfile docker-compose.yml app/
Vérifier à nouveau :
git status
Résultat :
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: Dockerfile
new file: docker-compose.yml
new file: app/index.html
💾 Étape 4 : Créer un commit
# Commit avec un message descriptif
git commit -m "TD1: Application web avec Nginx"
**Bonnes pratiques pour les messages de commit :**
✅ **BON** :
git commit -m "TD1: Application web avec Nginx et Docker Compose"
git commit -m "Ajout du healthcheck dans le Dockerfile"
git commit -m "Correction: Ports mal configurés dans compose.yml"
❌ **MAUVAIS** :
git commit -m "update"
git commit -m "fix"
git commit -m "test"
🚀 Étape 5 : Push vers Gitea
# Push vers la branche main
git push origin main
Git vous demandera à nouveau vos identifiants Gitea.
🔄 Workflow de mise à jour
🔁 Après la première soumission
Si vous modifiez vos fichiers après le premier push :# 1. Vérifier les modifications
git status
# 2. Ajouter les modifications
git add .
# 3. Commit
git commit -m "TD1: Amélioration du Dockerfile"
# 4. Push
git push origin main
🛠️ Commandes utiles
# Voir l'historique des commits
git log
# Voir les différences avant de commit
git diff
# Annuler les modifications d'un fichier
git checkout -- Dockerfile
# Voir les branches
git branch
# Récupérer les dernières modifications depuis Gitea
git pull origin main
📊 Vérifier que le push a fonctionné
💻 Dans votre terminal
Après `git push`, vous devriez voir :Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 345 bytes | 345.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: . Processing 1 references
remote: Processed 1 references in total
To https://git.zohrabi.cloud/Groupe-A/jean.dupont-tds.git
abc1234..def5678 main -> main
🌐 Sur Gitea
1. Allez sur https://git.zohrabi.cloud 2. Ouvrez votre repository 3. Vérifiez que vos fichiers apparaissent 4. Allez dans l'onglet **"Actions"** 5. Vous devriez voir le workflow de correction en cours🚫 Problèmes courants et solutions
🔐 Problème 1 : Authentification échoue
**Symptôme :**remote: Invalid username or password.
fatal: Authentication failed
**Solutions :**
1. Vérifier votre nom d'utilisateur et mot de passe
2. Si vous avez changé votre mot de passe, utilisez le nouveau
3. Essayer de vous reconnecter sur https://git.zohrabi.cloud
⚠️ Problème 2 : Conflit de merge
**Symptôme :**error: failed to push some refs to 'https://git.zohrabi.cloud/...'
hint: Updates were rejected because the remote contains work that you do not have locally.
**Solution :**
# Récupérer les modifications distantes
git pull origin main
# Résoudre les conflits si nécessaire
# Puis push à nouveau
git push origin main
❓ Problème 3 : Fichiers non suivis (untracked)
**Symptôme :** Vos fichiers n'apparaissent pas après `git status` **Solution :**# Vérifier que vous êtes dans le bon dossier
pwd
# Lister tous les fichiers
ls -la
# Ajouter explicitement
git add Dockerfile docker-compose.yml
🚷 Problème 4 : .gitignore bloque des fichiers
**Symptôme :** Certains fichiers ne sont jamais ajoutés **Solution :** Créer/modifier `.gitignore` :# Fichiers à ignorer
node_modules/
*.log
.env
.DS_Store
# Mais ne PAS ignorer les fichiers nécessaires :
# !Dockerfile
# !docker-compose.yml
🔐 Authentification SSH (Avancé)
🔑 Étape 1 : Générer une clé SSH
ssh-keygen -t ed25519 -C "jean.dupont@students.zohrabi.cloud"
# Appuyer sur Entrée pour tout accepter par défaut
📋 Étape 2 : Copier la clé publique
cat ~/.ssh/id_ed25519.pub
Copier tout le contenu affiché.
⚙️ Étape 3 : Ajouter la clé dans Gitea
1. Aller sur https://git.zohrabi.cloud 2. **Paramètres** → **Clés SSH/GPG** 3. **Ajouter une clé** 4. Coller la clé publique 5. Donner un nom (ex: "Mon PC") 6. Sauvegarder🔧 Étape 4 : Changer l'URL du remote
# Voir l'URL actuelle
git remote -v
# Changer pour SSH
git remote set-url origin git@git.zohrabi.cloud:Groupe-A/jean.dupont-tds.git
# Vérifier
git remote -v
Maintenant, `git push` ne demandera plus de mot de passe !
📝 Checklist avant chaque push
✅ Liste de vérification
Avant de faire `git push`, vérifiez : - [ ] ✅ Projet testé **localement** - [ ] ✅ `docker compose up` fonctionne - [ ] ✅ Pas de fichiers inutiles (node_modules, etc.) - [ ] ✅ Pas de secrets/mots de passe en clair - [ ] ✅ Fichiers requis présents (Dockerfile, docker-compose.yml) - [ ] ✅ Message de commit descriptif - [ ] ✅ `git status` vérifié📚 Commandes Git essentielles (Résumé)
🎯 Référence rapide
# Configuration initiale
git config --global user.name "Votre Nom"
git config --global user.email "votre@email.com"
# Cloner un repository
git clone https://git.zohrabi.cloud/Groupe-A/username-tds.git
# Vérifier l'état
git status
# Ajouter des fichiers
git add . # Tous les fichiers
git add Dockerfile # Fichier spécifique
# Créer un commit
git commit -m "Message descriptif"
# Push vers Gitea
git push origin main
# Pull (récupérer les modifications)
git pull origin main
# Voir l'historique
git log
# Voir les différences
git diff
# Annuler des modifications
git checkout -- fichier
🎯 Exemple complet de A à Z
💡 Workflow complet en une seule section
# 1. Clone (première fois seulement)
git clone https://git.zohrabi.cloud/Groupe-A/jean.dupont-tds.git
cd jean.dupont-tds
# 2. Créer votre projet
echo "FROM nginx:alpine" > Dockerfile
echo "version: '3.8'" > docker-compose.yml
# 3. Tester localement
docker compose up -d
docker compose ps
docker compose down
# 4. Ajouter au Git
git add .
# 5. Commit
git commit -m "TD1: Premier projet Docker"
# 6. Push
git push origin main
# 7. Vérifier sur Gitea
# Aller sur https://git.zohrabi.cloud > Votre repo > Actions
🆘 Besoin d'aide ?
- 📖 Consultez la FAQ
- 💡 Guide Git officiel
- 📧 Contactez : Reza@zohrabi.fr
Bon push ! 🚀