305 votes

Comment migrer de dépôt GIT d’un serveur vers un nouveau

J’ai un serveur que je prends vers le bas. La seule chose que j’ai laissé pour migrer est mon dépôt. Ce serveur est répertorié comme origine (maître) pour l’un de mes projets. Ce qui est la bonne façon de passer du référentiel de conserver l’historique.

262voto

Koby Points 3376

Pour ajouter le nouvel emplacement de repo,

Puis pousser le contenu vers le nouvel emplacement

Enfin supprimer l’ancienne

Après cela, vous pouvez faire ce que bdonlan dit et éditer le fichier the.git/config pour modifier le new_repo_name d’origine. Si vous ne retirez pas l’origine (origine référentiel distant), vous pouvez tout simplement pousser les changements pour le nouveau repo avec

227voto

schnurstrax Points 528

Si vous souhaitez faire migrer toutes les branches et tags, vous devez utiliser les commandes suivantes :

pour cloner le vieux repo avec toutes les branches

mettre en place une nouvelle télécommande

pousser tous les refs sous refs/têtes (ce qui est probablement ce que vous voulez)

80voto

bdonlan Points 90068

Copiez-le sur. C’est vraiment aussi simple que cela. :)

Côté client, il suffit d’éditer .git/config dans le repo local du client pour pointer vos télécommandes vers la nouvelle URL au besoin.

37voto

Juan A. Navarro Points 1768

Je suis juste reposter ce que les autres ont dit, dans une simple liste d'instructions.

  1. Déplacer le référentiel: il suffit de se connecter sur le nouveau serveur, cd pour le répertoire parent où vous voulez maintenant de tenir le référentiel, et d'utiliser rsync de la copie de l'ancien serveur:

    new.server> rsync -a -v -e ssh user@old.server.com:path/to/repository.git .
    
  2. Les clients pointer vers le nouveau référentiel: Maintenant, chaque client à l'aide du référentiel, il suffit de retirer le pointeur à l'ancienne origine, et en ajouter un nouveau.

    client> git remote rm origin
    client> git remote add origin user@new.server.com:path/to/repository.git
    

16voto

John Smith Points 141

Jetez un oeil à cette recette sur GitHub: https://help.github.com/articles/importing-an-external-git-repository

J'ai essayé plusieurs méthodes avant de découvrir git push --mirror .

Travaillé comme un charme!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X