Wie kann ich den URI (URL) für ein entferntes Git-Repository ändern?

Ich habe ein Repo (origin) auf einem USB-Stick, den ich auf meine Festplatte (lokal) geklont habe. Ich verschoben "origin" zu einem NAS und erfolgreich getestet Klonen es von hier.

Ich würde gerne wissen, ob ich die URI von "origin" in den Einstellungen von "local" ändern kann, so dass sie nun vom NAS und nicht vom USB-Stick gezogen wird.

Für jetzt kann ich zwei Lösungen sehen:

  • Alles auf den USB-Stick pushen und wieder auf das NAS kopieren (was aufgrund der neuen Commits zu nas-origin eine Menge Arbeit bedeutet);

  • eine neue Remote zu "local" hinzufügen und die alte löschen (ich befürchte, dass ich damit meinen Verlauf zerstöre).

Lösung

Sie können

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

(siehe git help remote) oder Sie können einfach .git/config bearbeiten und die URLs dort ändern. Es besteht keine Gefahr, dass Sie die Historie verlieren, es sei denn, Sie machen etwas sehr Dummes (und wenn Sie sich Sorgen machen, machen Sie einfach eine Kopie Ihres Repos, denn Ihr Repos ist Ihre Historie).

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

Ändern der URL einer Fernbedienung

Kommentare (0)

Host für einen Git Origin-Server ändern

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

Hoffentlich müssen Sie das nicht tun. Bei dem Server, den ich für die Zusammenarbeit an einigen Git-Projekten verwendet habe, ist der Domänenname abgelaufen. Das bedeutete, dass ich einen Weg finden musste, die lokalen Repositories zu migrieren, um wieder synchron zu sein.

Update: Vielen Dank an @mawolf, der mich darauf hingewiesen hat, dass es mit aktuellen Git-Versionen einen einfachen Weg gibt (Stand Februar 2010):

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

Siehe die Manpage für Details.

Wenn Sie eine ältere Version benutzen, dann versuchen Sie dies:

Dies funktioniert allerdings nur, wenn es sich um denselben Server handelt, nur mit anderen Namen.

Angenommen, der neue Hostname ist newhost.com, und der alte war oldhost.com, dann ist die Änderung ganz einfach.

Bearbeiten Sie die Datei .git/config in Ihrem Arbeitsverzeichnis. Sie sollten etwas sehen wie:

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

Ändern Sie oldhost.com in newhost.com, speichern Sie die Datei und Sie sind fertig.

Nach meinen begrenzten Tests (git pull origin; git push origin; gitx) scheint alles in Ordnung zu sein. Und ja, ich weiß, dass es eine Unsitte ist, an den Interna von Git herumzupfuschen.

Kommentare (1)