J'ai un repo (origin) sur une clé USB que j'ai cloné sur mon disque dur (local). J'ai déplacé "origin" ; vers un NAS et j'ai testé avec succès le clonage à partir de là.
J'aimerais savoir si je peux modifier l'URI de "origin" ; dans les paramètres de "local" ; afin qu'il soit désormais extrait du NAS, et non de la clé USB.
Pour l'instant, je vois deux solutions :
pousser tout sur la clé usb, et recopier sur le NAS (implique beaucoup de travail dû aux nouveaux commits de nas-origin) ;
ajouter un nouveau remote à "local" ; et supprimer l'ancien (j'ai peur de casser mon historique).
Vous pouvez
git remote set-url origin new.git.url/here
(voir git help remote
) ou vous pouvez simplement éditer .git/config
et changer les URLs là. Vous ne risquez pas de perdre l'historique, sauf si vous faites quelque chose de très bête (et si vous êtes inquiet, faites simplement une copie de votre repo, puisque votre repo est votre historique).
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)
[Changer d'hôte pour un serveur d'origine Git][1]
[1] : http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
de : http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/
J'espère que vous n'aurez pas à le faire. Le nom de domaine du serveur que j'utilise pour collaborer à quelques projets git a expiré. Il fallait donc trouver un moyen de migrer les dépôts locaux pour se synchroniser à nouveau.
Mise à jour : Merci à @mawolf d'avoir indiqué qu'il existe un moyen facile avec les versions récentes de git (post Feb, 2010) :
git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git
Voir la page de manuel pour plus de détails.
Si vous êtes sur une ancienne version, essayez ceci :
Attention, cela ne fonctionne que s'il s'agit du même serveur, mais avec des noms différents.
En supposant que le nouveau nom d'hôte est newhost.com
, et que l'ancien était oldhost.com
, le changement est assez simple.
Editez le fichier .git/config
dans votre répertoire de travail. Vous devriez voir quelque chose comme :
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git
Remplacez oldhost.com
par newhost.com
, enregistrez le fichier et vous avez terminé.
D'après mes tests limités (git pull origin ; git push origin ; gitx
) tout semble en ordre. Et oui, je sais que ce n'est pas bien de jouer avec les internes de Git.