Jak zmienić URI (URL) dla zdalnego repozytorium Git?

Mam repo (origin) na kluczu USB, które sklonowałem na moim dysku twardym (lokalnym). Przeniosłem "origin" do NAS i pomyślnie przetestowałem klonowanie go z tego miejsca.

Chciałbym wiedzieć, czy mogę zmienić URI "origin" w ustawieniach "local", tak aby teraz pobierał z NAS, a nie z klucza USB.

Na razie widzę dwa rozwiązania:

  • wypchnąć wszystko na usb-orign, i ponownie skopiować na NAS (implikuje dużo pracy z powodu nowych commitów do nas-origin);

  • dodać nowego remote'a do "local" i usunąć starego (obawiam się, że zepsuję sobie historię).

Rozwiązanie

Można

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

(zobacz git help remote) lub możesz po prostu edytować .git/config i zmienić tam adresy URL. Nie jesteś w żadnym niebezpieczeństwie utraty historii, chyba że zrobisz coś bardzo głupiego (a jeśli się martwisz, po prostu zrób kopię swojego repo, ponieważ twoje repo jest twoją historią).

Komentarze (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)

Zmiana adresu URL pilota'a

Komentarze (0)

Zmiana hosta dla serwera Git Origin

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

Mam nadzieję, że to nie jest coś, co musisz zrobić. Serwer, którego używałem do współpracy nad kilkoma projektami git, miał wygasającą nazwę domeny. Oznaczało to znalezienie sposobu na migrację lokalnych repozytoriów, aby odzyskać synchronizację.

Aktualizacja: Dzięki @mawolf za wskazanie, że istnieje łatwy sposób z ostatnimi wersjami git (post Feb, 2010):

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

Zobacz stronę man, aby uzyskać szczegółowe informacje.

Jeśli jesteś na starszej wersji, spróbuj tego:

Jako zastrzeżenie, działa to tylko wtedy, gdy jest to ten sam serwer, tylko z różnymi nazwami.

Zakładając, że nowa nazwa hosta to newhost.com, a stara to oldhost.com, zmiana jest dość prosta.

Edytuj plik .git/config w swoim katalogu roboczym. Powinieneś zobaczyć coś takiego:

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

Zmień oldhost.com na newhost.com, zapisz plik i gotowe.

Z moich ograniczonych testów (git pull origin; git push origin; gitx) wszystko wydaje się w porządku. I tak, wiem, że jest to zła forma, aby zadzierać z wewnętrznymi elementami git.

Komentarze (1)