From 6a609fb467f8938a9819c26759a215c184ea5ce7 Mon Sep 17 00:00:00 2001 From: d6soft <7829284+d6soft@users.noreply.github.com> Date: Tue, 24 Jun 2025 13:31:56 +0200 Subject: [PATCH] docs: Ajout du guide de migration Git GitLab vers Gitea MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Guide complet avec toutes les commandes commentées - Phases de migration sécurisées (sauvegarde, migration, nettoyage) - Gestion des problèmes courants - Exemple concret de la migration réalisée --- docs/guide-migration-git-gitlab-vers-gitea.md | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 docs/guide-migration-git-gitlab-vers-gitea.md diff --git a/docs/guide-migration-git-gitlab-vers-gitea.md b/docs/guide-migration-git-gitlab-vers-gitea.md new file mode 100644 index 00000000..37b051e4 --- /dev/null +++ b/docs/guide-migration-git-gitlab-vers-gitea.md @@ -0,0 +1,218 @@ +# 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 + +```bash +# 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 + +```bash +# 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 + +```bash +# 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 + +```bash +# 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 + +```bash +# 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 + +```bash +# Lister toutes les branches déjà mergées dans main +git branch --merged main +``` + +### Supprimer les Branches Obsolètes + +```bash +# 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 + +```bash +# É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 + +```bash +# 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 + +```bash +# 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 + +```bash +# 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 + +```bash +# 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 : + +```bash +# 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._