6104 votes

Comment changer l'URI (URL) d'un dépôt Git distant ?

J'ai un repo (origin) sur une clé USB que j'ai cloné sur mon disque dur (local). J'ai déplacé "origin" sur un NAS et j'ai testé avec succès le clonage à partir de là.

J'aimerais savoir si je peux changer l'URI de "origin" dans les paramètres de "local" de sorte qu'il provienne maintenant du NAS, et non de la clé USB.

Pour l'instant, je vois deux solutions :

  • pousser tout sur le usb-orign, et le copier à nouveau sur le NAS (implique beaucoup de travail dû aux nouveaux commits de nas-origin) ;

  • ajouter une nouvelle télécommande à "local" et supprimer l'ancienne (j'ai peur de casser mon historique).

9 votes

J'ai dû faire cela sur une ancienne version de git (1.5.6.5) et l'option set-url n'existait pas. Le fait de supprimer simplement le remote indésirable et d'en ajouter un nouveau avec le même nom a fonctionné sans problème et a maintenu l'historique sans problème.

0 votes

Dans mon cas, j'ai besoin de vérifier ma permission, j'ai deux dépôts git privés et ce deuxième compte est l'administrateur de ce nouveau dépôt et le premier est mon compte utilisateur par défaut et je dois accorder la permission au premier.

0 votes

9702voto

hobbs Points 71946

Vous pouvez

git remote set-url origin new.git.url/here

(voir git help remote ) ou vous pouvez modifier .git/config et changez les URLs là. Vous ne risquez pas de perdre l'historique, à moins que vous ne fassiez quelque chose de très stupide (et si vous êtes inquiet, faites simplement une copie de votre repo, puisque votre repo es votre histoire).

42 votes

Si vous avez un utilisateur shell différent, vous pouvez spécifier votre utilisateur git au début de la nouvelle url, par exemple : myself@git://new.url.here

20 votes

Vous pouvez également définir la branche amont master pour votre nouvel emplacement d'origine avec : git branch -u origin/master . Cela vous permettra de juste git push au lieu de devoir git push origin master à chaque fois.

41 votes

@kelorek ou vous pouvez juste git push -u origin master la première fois :)

1692voto

Utensil Points 731
git remote -v
# View existing remotes
# origin  https://github.com/user/repo.git (fetch)
# origin  https://github.com/user/repo.git (push)

git remote set-url origin https://github.com/user/repo2.git
# Change the 'origin' remote's URL

git remote -v
# Verify new remote URL
# origin  https://github.com/user/repo2.git (fetch)
# origin  https://github.com/user/repo2.git (push)

Changer l'URL d'une télécommande

30 votes

C'est incroyable que vous ayez obtenu près de mille upvotes et par conséquent près de dix mille points pour avoir simplement donné la même réponse que celle qui était acceptée, mais trois ans plus tard.

4 votes

Pour les avoir tous, j'ai ajouté : git remote set-url --push origin git@github.com/User/Branch.git y git remote set-url composer https://github.com/User/Branch.git

52 votes

@MS Berends Le git remote -v a aidé à la vérification, alors que la solution acceptée ne le permettait pas.

194voto

bong jae choe Points 1397

Git remote set-url {nom} {url}

git remote set-url origin https://github.com/myName/GitTest.git

139voto

yoda Points 1675

Changement d'hôte pour un serveur d'origine Git

de : http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/

J'espère que ce n'est pas quelque chose que vous devez faire. Le nom de domaine du serveur que j'utilise pour collaborer à quelques projets git a expiré. Il fallait donc trouver un moyen de migrer les dépôts locaux pour les synchroniser à nouveau.

Mise à jour : Merci à @mawolf d'avoir indiqué qu'il existe un moyen facile avec les versions récentes de git (post Feb, 2010) :

git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git

Voir la page de manuel pour plus de détails.

Si vous êtes sur une version plus ancienne, essayez ceci :

Attention, cela ne fonctionne que s'il s'agit du même serveur, mais avec des noms différents.

En supposant que le nouveau nom d'hôte est newhost.com et l'ancien était oldhost.com le changement est assez simple.

Modifier le .git/config dans votre répertoire de travail. Vous devriez voir quelque chose comme :

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git

Changement oldhost.com à newhost.com enregistrez le fichier et vous avez terminé.

D'après mes essais limités ( git pull origin; git push origin; gitx ) tout semble en ordre. Et oui, je sais que ce n'est pas bien de jouer avec les internes de git.

0 votes

Mauvaise forme ? Peut-être. Mais si vous necesito pour faire quelque chose que les auteurs ne s'attendaient pas à ce que quelqu'un ait un jour besoin de faire, il est parfois nécessaire de jouer avec les internes. Mais vous devez être prêt à accepter les conséquences si vous vous trompez. Backup your local repository _before_ messing with git internals.

0 votes

Où je peux trouver .git/config

117voto

Mithun Rana Points 9

C'est très facile et simple, il suffit de suivre ces instructions.

  1. Pour ajouter ou modifier l'origine à distance :

    git remote set-url origin githubrepurl
  2. Pour quelle URL distante vous avez actuellement dans ce référentiel local :

    git remote show origin

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