Skip to main content

Migration d'un Repository Git vers Gitea

Nous allons partir du principe que nous avons un repository Git existant avec des branches, commits etc.. 

Notre repository est "DemoRepoGit" se trouvant sur un serveur Linux via le chemin d'accès suivant /path/to/git/repo/DemoRepoGit.git.

Avant de commencer la migration il est nécessaire de créer le repository DemoRepoGit vide sur Gitea.

Préparation de l'environnement de migration

Pour ce faire nous allons d'abord créer un clone du repo afin d'éviter de perdre les données en cas de mauvaise manipulation lors de la migration. 

Se placer dans un dossier temporaire, par exemple /tmp.

Cloner le repo dans l'environnement de migration

--mirror = branches + tags + refs → migration complète

# Cloner en mirror (IMPORTANT)
git clone --mirror /path/to/git/repo/DemoRepoGit.git

Puis se placer dans le repo cloné (cd DemoRepoGit.git). 

Il est possible que la commande retourne l'erreur fatal : propriétaire douteux détecté dans le dépôt.... Cette erreur corresponds à un mécanisme de sécurité récent de Git. 
Maintenant Git bloque l'accès au repo si on est "root" et qu'il appartient à un autre utilisateur.
Pour corriger exécuter la commande suivante : git config --global --add safe.directory /path/to/git/repo/DemoRepoGit.git.

Ajouter le nouveau remote

L'ajout du nouveau remote permet de configurer la destination lors de l'envoi des commits, tags...

# Ajouter le remote Gitea
git remote add gitea http://gitea:3000/USER/DemoRepoGit.git
Envoi du nouveau repo 
# Push complet
git push --mirror gitea

Attention si il y avait des Hooks Git il faudra les reconfigurer.