55 votes

En quittant Github, comment changer l'origine d'un repo Git ?

J'héberge un projet dans Github, mais j'ai acheté un plan avec Dreamhost qui inclut l'accès au shell et Git.

      Github [Origin]
       /         \
  pull/           \pull
     /push     push\
    /               \  
Laptop           Dreamhost
(cloned)          (cloned)

Je voudrais supprimer mon repo de Github, et commencer à pousser directement vers DH.

Comment changer l'origine dans mon ordinateur portable, et dois-je supprimer l'origine dans Dreamhost ?

127voto

clee Points 5565
git remote rename origin github
git remote add origin <DreamHost-git-URL>
# test and make sure the DreamHost origin works properly for fetch and push
git remote rm github

Je préfère utiliser la commande "git remote" plutôt que de m'amuser avec le fichier .git/config à la main.

3 votes

Je suis d'accord. Je considère que le format de .git/config un détail de mise en œuvre, je toujours utiliser les outils comme git remote y git config pour être sûr que je ne foire pas la syntaxe.

1 votes

Oh +1 parce que j'aime ça. Mais vous devriez ajouter des infos supplémentaires sur la façon de migrer les branches de suivi après...

2 votes

J'ai dû ajouter git config branch.master.remote origin . Il semble que git ait changé cette variable comme un effet secondaire du renommage à distance.

58voto

Octavi Fornés Points 331

Le plus simple est de le faire :

$ git config remote.origin.url <Dreamhost-git-URL>

Vous montrez les télécommandes après ça :

$ git remote -v
origin Dreamhost-git-URL (fetch)
origin Dreamhost-git-URL (push)

0 votes

Oui, ça semble être la meilleure solution.

0 votes

Je ne pense pas que cette solution existait dans les versions publiées de git au moment où j'ai écrit ma réponse, mais elle semble définitivement plus simple :)

28voto

slashingweapon Points 5207

Le meilleur moyen est de git remote set-url origin <new-url>

2 votes

Ce commentaire devrait être en haut. le seul one-liner qui ne dépend pas de la structure de configuration interne de git.

0 votes

Je suis d'accord, je pense que c'est la meilleure réponse. Elle est simple et fait ce dont vous avez besoin en une seule ligne.

26voto

Adam Dymitruk Points 34999

La méthode la plus simple consiste à modifier votre fichier .git/config sur votre ordinateur portable. Cherchez simplement votre url github et remplacez-la par celle de DreamHost. Assurez-vous que votre clé publique ssh est définie sur Dreamhost. Maintenant vous pouvez pousser origin master et vous aurez peuplé votre dépôt Dreamhost.

Vous pouvez supprimer l'origine sur dreamhost mais ce n'est pas nécessaire.

Assurez-vous également que le dépôt qui s'y trouve est nu. Par défaut, vous ne pouvez pas pousser vers des référentiels non nus.

0 votes

Eh bien, comme vous l'avez dit, il s'agit d'un repo non nu, je suis un peu confus. Que faire maintenant ?

0 votes

0 votes

Comme ci-dessus, tout ce dont vous avez besoin est l'option --bare lorsque vous clonez ce qui va être un repo amont.

4voto

Yann Ramin Points 25139

Le moyen le plus simple est de modifier votre .git/config qui indique où se trouve l'origine. Vous pouvez le tester en exécutant un git fetch

Vous pouvez supprimer les références distantes du côté de Dreamhost si vous le souhaitez, dans le même fichier.

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