Hoe verander ik de URI (URL) voor een remote Git repository?

Ik heb een repo (origin) op een USB-sleutel die ik heb gekloond op mijn harde schijf (lokaal). Ik verplaatste "origin" naar een NAS en testte met succes het klonen vanaf hier.

Ik zou graag willen weten of ik de URI van "origin" kan veranderen in de instellingen van "local" zodat het nu van de NAS zal halen, en niet van de USB-sleutel.

Voor nu, zie ik twee oplossingen:

  • push alles naar de usb-orign, en kopieer het opnieuw naar de NAS (impliceert een hoop werk als gevolg van nieuwe commits naar nas-origin);

  • voeg een nieuwe remote toe aan "local" en verwijder de oude (ik vrees dat ik'mijn geschiedenis zal breken).

Oplossing

U kunt

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

(zie git help remote) of je kunt gewoon .git/config bewerken en de URLs daar veranderen. Je'bent niet in gevaar om de geschiedenis te verliezen, tenzij je iets heel doms doet (en als je'je zorgen maakt, maak dan gewoon een kopie van je repo, omdat je repo is je geschiedenis).

Commentaren (13)
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)

De URL van een afstandsbediening veranderen's

Commentaren (0)

Host wijzigen voor een Git Origin Server

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

Hopelijk is dit niet iets wat je hoeft te doen. De server die ik gebruik om aan een paar git projecten mee te werken, had een verlopen domeinnaam. Dit betekende dat ik een manier moest vinden om de lokale repositories te migreren om weer synchroon te komen.

Update: Met dank aan @mawolf voor het erop wijzen dat er een makkelijke manier is met recente git versies (post feb, 2010):

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

Zie de man pagina voor details.

Als je op een oudere versie zit, probeer dan dit:

Als caveat, dit werkt alleen als het dezelfde server is, alleen met andere namen.

Ervan uitgaande dat de nieuwe hostnaam newhost.com is, en de oude oldhost.com, dan is de verandering vrij simpel.

Bewerk het .git/config bestand in je werkmap. Je zou iets als het volgende moeten zien:

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

Verander oldhost.com in newhost.com, sla het bestand op en je bent klaar.

Uit mijn beperkte testen (git pull origin; git push origin; gitx) lijkt alles in orde. En ja, ik weet dat het niet netjes is om met git internals te rommelen.

Commentaren (1)