Turiu repą (origin) USB rakte, kurį klonavau į savo kietąjį diską (vietinį). Perkėliau "origin" į NAS ir sėkmingai išbandžiau klonavimą iš čia.
Norėčiau sužinoti, ar galiu pakeisti "origin" URI "local" nustatymuose, kad dabar jis būtų perkeliamas iš NAS, o ne iš USB rakto.
Kol kas matau du sprendimus:
Viską perkelti į USB origin ir vėl nukopijuoti į NAS (tai reiškia daug darbo dėl naujų įrašų į nas-origin);
pridėti naują nuotolinį "local" ir ištrinti senąjį (bijau, kad sugadinsiu savo istoriją).
Galite
git remote set-url origin new.git.url/here
(žr. git help remote
) arba galite tiesiog redaguoti .git/config
ir pakeisti URL adresus. Jums negresia joks pavojus prarasti istoriją, nebent padarytumėte ką nors labai kvailo (o jei nerimaujate, tiesiog pasidarykite savo duomenų saugyklos kopiją, nes jūsų duomenų saugykla yra jūsų istorija).
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)
Keisti "Git" pradinio serverio prieglobstį
iš: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
Tikimės, kad jums to daryti nereikia. Serverio, kurį naudojau bendradarbiaudamas keliuose "git" projektuose, domeno vardo galiojimo laikas baigėsi. Tai reiškė, kad reikia rasti būdą, kaip perkelti vietines saugyklas, kad jos vėl būtų sinchronizuotos.
Atnaujinimas: Ačiū @mawolf už tai, kad nurodė, jog su naujausiomis git versijomis (2010 m. vasario mėn.) yra paprastas būdas:
git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git
Išsamesnės informacijos ieškokite man puslapyje.
Jei naudojate senesnę versiją, pabandykite tai:
Tai veikia tik tuo atveju, jei tai yra tas pats serveris, tik su skirtingais vardais.
Darant prielaidą, kad naujasis serverio vardas yra newhost.com
, o senasis - oldhost.com
, pakeitimas yra gana paprastas.
Redaguokite .git/config
failą savo darbiniame kataloge. Turėtumėte matyti kažką panašaus į:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git
Pakeiskite oldhost.com
į newhost.com
, išsaugokite failą ir viskas.
Iš mano ribotų bandymų (git pull origin; git push origin; gitx
) atrodo, kad viskas tvarkoje. Ir taip, žinau, kad nėra gerai žaisti su "git" vidiniais parametrais.