Files
Serveur-NationGlory/GIT_SYNC.md
innotex 773bc7de1f feat: Synchronisation Git automatique des sous-repositories
Amélioration du script check-config.sh pour gérer automatiquement
le clonage et la mise à jour des repositories NationsGlory_ServeurBuild_Red
et WebNationsGlory_ServeurBuild_Red.

Nouveautés:
- Clone automatique si repositories absents
- Pull automatique si mises à jour disponibles
- Détection de conflits et modifications locales
- Configuration via repos.conf (template fourni)
- Documentation dans GIT_SYNC.md

Permet un déploiement simplifié sur nouvelle machine et
des mises à jour automatisées en production.
2026-02-05 18:47:13 +01:00

5.2 KiB

🔄 Synchronisation Git Automatique

Le script check-config.sh a été amélioré pour gérer automatiquement la synchronisation des repositories Git.

🎯 Fonctionnalités

1. Clonage automatique

Si les dossiers NationsGlory_ServeurBuild_Red ou WebNationsGlory_ServeurBuild_Red n'existent pas, le script les clone automatiquement depuis les URLs configurées.

2. Mise à jour automatique

Si les repositories existent déjà, le script :

  • Vérifie si des mises à jour sont disponibles
  • Met à jour automatiquement si possible
  • ⚠️ Vous avertit si vous avez des modifications locales

3. Détection de conflits

Le script détecte :

  • Modifications locales non commitées
  • Différences entre la version locale et distante
  • Problèmes de connexion Git

⚙️ Configuration

Fichier repos.conf

Créez ce fichier pour configurer les URLs de vos repositories :

cp repos.conf.example repos.conf
nano repos.conf

Exemples de configuration

Git sur serveur local (SSH) :

MC_SERVER_REPO="git@192.168.1.195:/srv/git/NationsGlory_ServeurBuild_Red.git"
WEB_ADMIN_REPO="git@192.168.1.195:/srv/git/WebNationsGlory_ServeurBuild_Red.git"
DEFAULT_BRANCH="main"

GitHub (SSH) :

MC_SERVER_REPO="git@github.com:username/NationsGlory_ServeurBuild_Red.git"
WEB_ADMIN_REPO="git@github.com:username/WebNationsGlory_ServeurBuild_Red.git"
DEFAULT_BRANCH="main"

GitHub (HTTPS) :

MC_SERVER_REPO="https://github.com/username/NationsGlory_ServeurBuild_Red.git"
WEB_ADMIN_REPO="https://github.com/username/WebNationsGlory_ServeurBuild_Red.git"
DEFAULT_BRANCH="main"

🚀 Utilisation

Premier déploiement

# 1. Configurer les URLs Git
cp repos.conf.example repos.conf
nano repos.conf

# 2. Cloner et vérifier
./check-config.sh

# 3. Déployer
./deploy.sh

Mise à jour

# Vérifier et mettre à jour
./check-config.sh

# Si des mises à jour sont disponibles
./stop.sh
./deploy.sh

📋 Comportement du script

Cas 1 : Repository n'existe pas

[→] Clonage de NationsGlory Serveur MC depuis git@...
[✓] NationsGlory Serveur MC cloné avec succès

Cas 2 : Repository à jour

[INFO] Repository NationsGlory Serveur MC existe, vérification des mises à jour...
[✓] NationsGlory Serveur MC est à jour

Cas 3 : Mise à jour disponible

[INFO] Repository NationsGlory Serveur MC existe, vérification des mises à jour...
[→] Mise à jour de NationsGlory Serveur MC disponible...
[→] Mise à jour de NationsGlory Serveur MC...
[✓] NationsGlory Serveur MC mis à jour avec succès

Cas 4 : Modifications locales

[INFO] Repository NationsGlory Serveur MC existe, vérification des mises à jour...
[→] Mise à jour de NationsGlory Serveur MC disponible...
[⚠] NationsGlory Serveur MC a des modifications locales non commitées
[INFO] Pour mettre à jour, committez ou annulez vos modifications

🔐 Configuration SSH

Pour un serveur Git local

  1. Générer une clé SSH (si vous n'en avez pas) :

    ssh-keygen -t ed25519 -C "votre@email.com"
    
  2. Copier la clé sur le serveur Git :

    ssh-copy-id user@192.168.1.195
    
  3. Tester la connexion :

    ssh git@192.168.1.195
    

Pour GitHub/GitLab

  1. Ajouter votre clé SSH à votre compte GitHub/GitLab

  2. Tester la connexion :

    ssh -T git@github.com
    # ou
    ssh -T git@gitlab.com
    

🐛 Dépannage

Erreur : "Échec du clonage"

Causes possibles :

  • URL Git incorrecte dans repos.conf
  • Problème d'authentification SSH
  • Serveur Git inaccessible

Solutions :

# Vérifier l'URL
cat repos.conf

# Tester la connexion SSH
ssh git@192.168.1.195

# Cloner manuellement pour voir l'erreur
git clone <URL_DU_REPO>

Avertissement : "Modifications locales non commitées"

Solution 1 : Commiter les modifications

cd NationsGlory_ServeurBuild_Red
git add .
git commit -m "Mes modifications"
git push

Solution 2 : Annuler les modifications

cd NationsGlory_ServeurBuild_Red
git reset --hard origin/main

Erreur : "MC_SERVER_REPO non défini"

Solution :

# Créer repos.conf depuis le template
cp repos.conf.example repos.conf
nano repos.conf

📚 Workflow recommandé

Développement local

  1. Faites vos modifications dans les sous-repositories
  2. Testez localement
  3. Committez et pushez vos changements
  4. Sur le serveur de production, exécutez ./check-config.sh pour mettre à jour

Production

  1. Exécutez régulièrement ./check-config.sh pour vérifier les mises à jour
  2. Si des mises à jour sont détectées :
    ./stop.sh
    ./check-config.sh  # Met à jour
    ./deploy.sh        # Redémarre
    

🎓 Avantages

Automatisation : Plus besoin de cloner/pull manuellement
Détection de conflits : Avertit avant d'écraser des modifications
Portable : Fonctionne sur n'importe quelle machine
Flexible : Supporte Git local, GitHub, GitLab, etc.
Sécurité : Vérifie avant de modifier


Note : Le fichier repos.conf n'est pas versionné (dans .gitignore) pour permettre des configurations différentes sur chaque machine.