Files
geo/docs/guide-migration-git-gitlab-vers-gitea.md
pierre 1018b86537 feat: Gestion des secteurs et migration v3.0.4+304
- Ajout système complet de gestion des secteurs avec contours géographiques
- Import des contours départementaux depuis GeoJSON
- API REST pour la gestion des secteurs (/api/sectors)
- Service de géolocalisation pour déterminer les secteurs
- Migration base de données avec tables x_departements_contours et sectors_adresses
- Interface Flutter pour visualisation et gestion des secteurs
- Ajout thème sombre dans l'application
- Corrections diverses et optimisations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-07 11:01:45 +02:00

5.2 KiB
Executable File

Guide de Migration Git : GitLab vers Gitea

Guide complet pour migrer un dépôt Git de GitLab vers Gitea en préservant l'historique complet et en nettoyant les branches obsolètes.

📋 Prérequis

  • Accès au dépôt GitLab source
  • Accès (push) au nouveau dépôt Gitea (créé et vide)
  • Git configuré localement

🚀 Étapes de Migration

Phase 1 : Préparation et Commit

# Vérifier l'état actuel du dépôt
git status

# Ajouter toutes les modifications en cours
git add .

# Commiter les modifications avant migration
git commit -m "Commit avant migration vers Gitea - consolidation des features"

# Vérifier que le working tree est propre
git status

Phase 2 : Sauvegarde vers l'Ancien Dépôt

# Voir toutes les branches disponibles
git branch -a

# Pousser la branche actuelle vers GitLab (sauvegarde de sécurité)
git push origin feature/nom-de-votre-branche

# Optionnel : Sauvegarder toutes les branches
git push origin --all

# Optionnel : Sauvegarder les tags
git push origin --tags

Phase 3 : Migration vers Gitea

# Vérifier la configuration remote actuelle
git remote -v

# Supprimer l'ancien remote GitLab
git remote remove origin

# Ajouter le nouveau remote Gitea
git remote add origin https://votre-gitea.com/utilisateur/depot.git

# Vérifier la nouvelle configuration
git remote -v

# Pousser toutes les branches vers Gitea (migration complète)
git push -u origin --all

# Pousser les tags vers Gitea
git push origin --tags

Phase 4 : Vérification de la Migration

# Vérifier l'état des branches après migration
git branch -a

# Vérifier le statut
git status

# Optionnel : Tester la connectivité
git remote show origin

🧹 Nettoyage et Consolidation

Merger les Branches de Feature

# Basculer vers la branche principale
git checkout main

# En cas de conflit lors du checkout, stasher les modifications
git stash

# Merger une branche de feature
git merge feature/nom-de-la-branche

# Pousser main mise à jour
git push origin main

Vérifier les Branches Mergées

# Lister toutes les branches déjà mergées dans main
git branch --merged main

Supprimer les Branches Obsolètes

# Supprimer les branches locales (une par une ou groupées)
git branch -d feature/branche1 feature/branche2 feature/branche3

# Supprimer les branches distantes
git push origin --delete feature/branche1 feature/branche2 feature/branche3

# Vérification finale - ne devrait rester que main
git branch -a

Vérification Finale

# État final souhaité
git branch -a
# Résultat attendu :
# * main
#   remotes/origin/main

# Vérifier que tout est synchronisé
git status
# Résultat attendu : "nothing to commit, working tree clean"

🔧 Gestion des Problèmes Courants

Erreur d'Authentification

# Configurer les credentials si nécessaire
git config --global user.name "VotreNom"
git config --global user.email "votre@email.com"

# Ou utiliser SSH au lieu de HTTPS
git remote set-url origin git@votre-gitea.com:utilisateur/depot.git

Conflits lors du Merge

# Sauvegarder les modifications locales
git stash

# Faire le merge
git merge feature/branche

# Récupérer les modifications si nécessaire
git stash pop

Annuler des Modifications Locales

# Annuler les modifications sur des fichiers spécifiques
git checkout -- fichier1 fichier2

# Ou reset complet (ATTENTION : perte des modifications)
git reset --hard HEAD

📊 Résumé des Avantages

Historique préservé : Tous les commits sont conservés
Branches migrées : Toutes les branches sont transférées
Sauvegarde sécurisée : L'ancien dépôt reste intact
Nettoyage propre : Suppression sécurisée des branches obsolètes
Consolidation : Code unifié sur la branche principale

⚠️ Points d'Attention

  • Toujours sauvegarder vers l'ancien dépôt avant migration
  • Vérifier les droits sur le nouveau dépôt avant de commencer
  • Tester la connectivité avec un petit push avant la migration complète
  • Vérifier que les branches sont mergées avant de les supprimer
  • Communiquer avec l'équipe sur le changement de dépôt

🎯 Commandes Essentielles Résumées

# Migration complète en une fois
git add . && git commit -m "Pre-migration commit"
git push origin --all  # Sauvegarde
git remote remove origin
git remote add origin https://nouveau-depot.git
git push -u origin --all  # Migration

# Nettoyage
git checkout main
git branch --merged main  # Vérifier
git branch -d branche1 branche2  # Supprimer locales
git push origin --delete branche1 branche2  # Supprimer distantes

📝 Exemple Concret

Voici l'exemple de la migration réalisée pour ce projet :

# Migration de : http://51.68.36.203:35788/d6soft/geosector.git
# Vers : https://gitea.d6soft.fr/D6/geo.git

# Résultats :
# - 2290 objets migrés (140.23 MiB)
# - 6 branches transférées
# - Historique complet préservé
# - Nettoyage final : seule la branche main conservée

Guide testé et validé lors de la migration réussie d'un projet multi-branches avec préservation complète de l'historique.