Jeg har en repo (opprinnelse) på en USB-nøkkel som jeg klonet på harddisken min (lokal). Jeg flyttet "opprinnelsen" til en NAS og testet å klone den herfra.
Jeg vil gjerne vite om jeg kan endre URI for "opprinnelse" i innstillingene for "lokal", slik at den nå vil trekke fra NAS-en, og ikke fra USB-nøkkelen.
Foreløpig kan jeg se to løsninger:
skyv alt til usb-orign, og kopier det til NAS-en igjen (innebærer mye arbeid på grunn av nye forpliktelser til nas-origin);
legg til en ny fjernkontroll til " lokal " og slett den gamle (jeg frykter at jeg " vil ødelegge historien min).
Du kan
git remote set-url origin new.git.url/here
(se git help remote
) eller du kan bare redigere .git/config
og endre nettadressene der. Du er ikke i noen fare for å miste historikken med mindre du gjør noe veldig dumt (og hvis du er bekymret, bare ta en kopi av repoen din, siden repoen din er historikken din).
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)
Endre vert for en Git Origin-server
fra: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
Forhåpentligvis er ikke dette noe du trenger å gjøre. Serveren som jeg har brukt til å samarbeide på noen git-prosjekter med hadde domenenavnet utløpt. Dette betydde å finne en måte å migrere de lokale depotene for å komme tilbake i synkronisering.
Oppdatering: Takk til @mawolf for å påpeke at det er en enkel måte med nyere git-versjoner (etter februar 2010):
git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git
Se man-siden for detaljer.
Hvis du bruker en eldre versjon, kan du prøve dette:
Som en advarsel fungerer dette bare ettersom det er den samme serveren, bare med forskjellige navn.
Forutsatt at det nye vertsnavnet er newhost.com
, og det gamle var oldhost.com
, er endringen ganske enkel.
Rediger filen .git/config
i arbeidskatalogen din. Du bør se noe sånt som:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git
Endre oldhost.com
til newhost.com
, lagre filen og du er ferdig.
Fra min begrenset testing (git pull opprinnelse; git push opprinnelse; gitx
) alt virker i orden. Og ja, jeg vet at det er dårlig form å rote med git internals.