Eu tenho um repo (origem) em uma chave USB que eu clonei no meu disco rígido (local). Eu mudei " origem" para um NAS e testei com sucesso a clonagem a partir daqui.
Gostaria de saber se posso alterar o URI de "origem" nas configurações de "local" então agora ele vai puxar do NAS, e não da chave USB.
Por enquanto, posso ver duas soluções:
empurrar tudo para o usb-orign, e copiá-lo para o NAS novamente (implica muito trabalho devido a novos compromissos para o nas-origin);
adicionar um novo controle remoto ao "local" e apagar o antigo (temo que I'irá quebrar minha história).
Você pode
git remote set-url origin new.git.url/here
(veja git help remote
) ou você pode apenas editar .git/config
e alterar as URLs lá. Você não corre o risco de perder o histórico a menos que faça algo muito bobo (e se estiver preocupado, faça uma cópia do seu repo, já que o seu repo é o seu histórico).
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)
Mudar Host para um Servidor de Origem Git
de: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
Espero que isto não seja algo que precises de fazer. O servidor que eu tenho usado para colaborar em alguns projetos de git com o qual o nome de domínio expirou. Isto significava encontrar uma forma de migrar os repositórios locais para voltar a estar em sincronia.
Atualização: Graças ao @mawolf por ter apontado que há uma maneira fácil com as versões recentes do git (post Fev, 2010):
git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git
Veja a página de homem para mais detalhes.
Se você está numa versão mais antiga, então tente isto:
Como um aviso, isto funciona apenas porque é o mesmo servidor, apenas com nomes diferentes.
Assumindo que o novo nome da nova hostname é newhost.com
, e o antigo era oldhost.com
, a mudança é bastante simples.
Edite o arquivo .git/config
no seu diretório de trabalho. Você deve ver algo como:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git
Mude oldhost.com
para newhost.com
, salve o arquivo e pronto.
A partir dos meus testes limitados (git pull origin; git push origin; gitx
) tudo parece estar em ordem. E sim, eu sei que é má forma de mexer com os internos do gitx.