Come cambiare l'URI (URL) di un repository Git remoto?

Ho un repo (origin) su una chiave USB che ho clonato sul mio disco rigido (locale). Ho spostato "origin" su un NAS e ho testato con successo la clonazione da qui.

Vorrei sapere se posso cambiare l'URI di "origin" nelle impostazioni di "local" in modo che ora tiri dal NAS, e non dalla chiave USB.

Per ora, vedo due soluzioni:

  • spingere tutto sulla usb-orign, e copiare di nuovo sul NAS (implica molto lavoro a causa dei nuovi commit di nas-origin);

  • aggiungere un nuovo remoto a "local" e cancellare il vecchio (temo di rompere la mia cronologia).

Soluzione

È possibile

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

(vedi git help remote) o puoi semplicemente modificare .git/config e cambiare gli URL lì. Non sei in pericolo di perdere la storia a meno che tu non faccia qualcosa di molto stupido (e se sei preoccupato, fai una copia del tuo repo, dato che il tuo repo è la tua storia).

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

[Cambiare l'URL di un telecomando] (http://help.github.com/articles/changing-a-remote-s-url)

Commentari (0)

Cambiare host per un server Git Origin

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

Speriamo che questo non sia qualcosa che dovete fare. Il server che ho usato per collaborare ad alcuni progetti git con ha avuto il nome di dominio scaduto. Questo significava trovare un modo per migrare i repository locali per tornare in sincronia.

Aggiornamento: Grazie a @mawolf per aver sottolineato che c'è un modo semplice con le recenti versioni di git (post Feb, 2010):

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

Vedere la pagina man per i dettagli.

Se sei su una versione precedente, prova questo:

Come avvertimento, questo funziona solo se si tratta dello stesso server, solo con nomi diversi.

Assumendo che il nuovo hostname sia newhost.com, e quello vecchio fosse oldhost.com, il cambiamento è abbastanza semplice.

Modifica il file .git/config nella tua directory di lavoro. Dovresti vedere qualcosa come

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

Cambia oldhost.com in newhost.com, salva il file e hai finito.

Dai miei test limitati (git pull origin; git push origin; gitx) tutto sembra in ordine. E sì, so che è una cattiva forma pasticciare con gli interni di git.

Commentari (1)