Wie ändere ich den URI (URL) für ein Remote-Git-Repository?


3894

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

Ich würde gerne wissen, ob ich den URI von "origin" in den Einstellungen von "local" ändern kann, damit er jetzt vom NAS und nicht vom USB-Stick abgerufen wird.

Im Moment sehe ich zwei Lösungen:

  • Schieben Sie alles auf den USB-Orign und kopieren Sie es erneut auf den NAS (dies erfordert viel Arbeit aufgrund neuer Commits für nas-origin).

  • Fügen Sie "local" eine neue Fernbedienung hinzu und löschen Sie die alte (ich fürchte, ich werde meine Geschichte brechen).


6
Ich musste dies auf einer alten Version von git (1.5.6.5) tun und die Option set-url existierte nicht. Das einfache Löschen der unerwünschten Fernbedienung und das Hinzufügen einer neuen mit demselben Namen funktionierte problemlos und führte den Verlauf einwandfrei.
HotN

In meinem Fall muss ich meine Erlaubnis überprüfen. Ich habe zwei private Git-Repositories und dieses zweite Konto ist der Administrator dieses neuen Repos und das erste ist mein Standardbenutzerkonto. Ich sollte dem ersten
saber tabatabaee yazdi

Antworten:


6330

Du kannst

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

(siehe git help remote) oder Sie können einfach .git/configdie URLs dort bearbeiten und ändern. Sie sind in Gefahr nicht Geschichte zu verlieren , wenn Sie etwas tun , sehr dumm (und wenn Sie besorgt sind, nur eine Kopie Ihrer Repo machen, da Ihr Repo ist Ihre Geschichte.)


29
Wenn Sie einen anderen Shell-Benutzer haben, möchten Sie möglicherweise Ihren Git-Benutzer am Anfang der neuen URL angeben, z. B.:myself@git://new.url.here
sobi3ch

13
Möglicherweise möchten Sie auch den Master-Upstream-Zweig für Ihren neuen Ursprungsort festlegen mit : git branch -u origin/master. Dies ermöglicht es Ihnen, einfach git pushanstatt git push origin masterjedes Mal zu müssen.
Kelorek

32
@kelorek oder Sie können nur git push -u origin masterdas erste Mal :)
Hobbs

26
Ich musste auch, git remote set-url --push origin git://...um den Ursprung einzustellen ... (Push) URL.
Jpillora

3
Für mehrere Zweige können Sie verwenden git push -u --all, um alle Zweige gleichzeitig auf neue URL (anstelle von git push -u origin master) zu verschieben
Ben

902
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


100

Ändern Sie den Host für einen Git Origin-Server

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

Hoffentlich müssen Sie das nicht tun. Auf dem Server, mit dem ich bei einigen Git-Projekten zusammengearbeitet habe, ist der Domainname abgelaufen. Dies bedeutete, einen Weg zu finden, die lokalen Repositorys zu migrieren, um wieder synchron zu werden.

Update: Dank an @mawolf für den Hinweis, dass es mit den neuesten Git-Versionen einen einfachen Weg gibt (nach Februar 2010):

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

Weitere Informationen finden Sie in der Manpage.

Wenn Sie eine ältere Version verwenden, versuchen Sie Folgendes:

Als Einschränkung funktioniert dies nur, da es sich um denselben Server handelt, nur mit unterschiedlichen Namen.

Angenommen, der neue Hostname ist newhost.comund der alte war oldhost.com, ist die Änderung recht einfach.

Bearbeiten Sie die .git/configDatei 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

Wechseln Sie oldhost.comzu 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ß, es ist eine schlechte Form, sich mit Git-Interna anzulegen.


Schlechte Form? Vielleicht. Aber wenn Sie benötigen die Autoren etwas zu tun , nicht erwarten , dass jemand würde jemals tun müssen, dann manchmal mit den Einbauten durcheinander erforderlich ist. Aber Sie müssen bereit sein, die Konsequenzen zu akzeptieren, wenn Sie etwas falsch machen. Backup your local repository _before_ messing with git internals.
Jesse Chisholm

56
git remote set-url origin git://new.location

(Alternativ können Sie die Zeile öffnen .git/config, suchen [remote "origin"]und bearbeiten url =.

Sie können überprüfen, ob es funktioniert hat, indem Sie die Fernbedienungen untersuchen:

git remote -v
# origin  git://new.location (fetch)
# origin  git://new.location (push)

Wenn Sie das nächste Mal pushen, müssen Sie den neuen Upstream-Zweig angeben, z.

git push -u origin master

Siehe auch: GitHub: Ändern der URL einer Fernbedienung


Ich konnte den neuen Ursprung nicht durch Bearbeiten von .git / config festlegen. Das in der URL genannte Git-Repository sei kein Git-Repository. Nachdem ich den Ursprung entfernt und neu erstellt hatte, war alles in Ordnung. Ich hatte die git remote set-url jedoch nicht als Lösung für mein Problem nachgeschlagen.
Octopusgrabbus

+1 für die vollständige Antwort mit dem git push -uBefehl. Vielleicht für andere offensichtlich, war nichts für mich.
Testphreak

37

Remote-URLs wechseln

Terminal öffnen.

Ist Schritt: - Ändern Sie das aktuelle Arbeitsverzeichnis in Ihr lokales Projekt.

2. Schritt: - Listen Sie Ihre vorhandenen Fernbedienungen auf, um den Namen der Fernbedienung zu erhalten, die Sie ändern möchten.

git remote -v

origin  https://github.com/USERNAME/REPOSITORY.git (fetch)

origin  https://github.com/USERNAME/REPOSITORY.git (push)

Ändern Sie die URL Ihrer Fernbedienung mit dem Befehl git remote set-url von HTTPS in SSH.

3. Schritt: - git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

4. Schritt: - Stellen Sie nun sicher, dass sich die Remote-URL geändert hat.

git remote -v Überprüfen Sie die neue Remote-URL

origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
origin  git@github.com:USERNAME/REPOSITORY.git (push)

Müssen Sie den alten Ursprung entfernen, bevor Sie den neuen Ursprung hinzufügen?
Schlitten

Ich habe nichts aus dem Projekt entfernt. Ich mache einfach die obigen Schritte und es hat funktioniert
VIKAS KOHLI

27
  1. Entfernen Sie den Ursprung mit dem Befehl auf gitbash git remote rm origin
  2. Und jetzt fügen Sie neuen Ursprung hinzu, indem Sie gitbash git remote add origin verwenden (HTTP-URL aus Ihrem Projekt-Repository in Bit-Bucket kopieren)

Dies ist eine wirklich nützliche Antwort, da sich ohne git remote rm originGit Details über den alten Ursprung merken.
Mato

Das oben git remote rm originGesagte behebt das Problem mit mehreren Fernbedienungen: Problem, bei dem ich die Remote-URL nicht festlegen konnte. remote.origin.url has multiple values fatal: could not set 'remote.origin.url'
Bitsand

21

git remote set-url {name} {url}

Ex) git remote set-url origin https://github.com/myName/GitTest.git


18

Schreiben Sie den folgenden Befehl von Ihrem Repo-Terminal aus:

git remote set-url origin git@github.com:<username>/<repo>.git

Weitere Informationen zum Ändern der URL auf der Fernbedienung finden Sie unter diesem Link.


1
Es hat geholfen. Der Link war nützlich
ANP

16

Wenn Sie geklont haben, besteht Ihre lokale automatisch,

Remote-URL, unter der es geklont wird.

Sie können es mit überprüfen git remote -v

Wenn Sie Änderungen daran vornehmen möchten,

git remote set-url origin https://github.io/my_repo.git

Hier,

Herkunft - Ihre Branche

Wenn Sie einen vorhandenen Zweig überschreiben möchten, können Sie ihn weiterhin verwenden. Er überschreibt Ihren vorhandenen Zweig.

git remote remove url
and 
git remote add origin url

für dich ...


Ich hatte mehrere Fernbedienungen hinzugefügt, daher war ein git remote rm originBefehl erforderlich, um alle zugehörigen URLs zu entfernen. Dann funktionierte der Befehl add.
Bitsand

14

So überprüfen Sie die Git-Remote-Verbindung:

git remote -v

Stellen Sie nun das lokale Repository auf Remote-Git ein:

git remote set-url origin https://NewRepoLink.git

Verwenden Sie nun den folgenden Code, um den Upstream oder Push zu starten:

git push --set-upstream origin master -f


1
Ich habe gepusht und doch hat Github meinen neuen Zweig nicht gezeigt. Das hat es zuletzt --set-upstreamgeschafft.
OoDeLally

11

Sie haben viele Möglichkeiten, dies zu tun:

Konsole

git remote set-url origin [Here new url] 

Stellen Sie nur sicher, dass Sie es an einem Ort geöffnet haben, an dem sich ein Repository befindet.

Konfig

Es befindet sich in .git / config (gleicher Ordner wie das Repository).

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = [Here new url]  <------------------------------------
...

TortoiseGit

Schritt 1 - Einstellungen öffnen

Schritt 2 - URL ändern

Dann bearbeiten Sie einfach die URL.

SourceTree

  1. Klicken Sie in der Symbolleiste auf die Schaltfläche "Einstellungen", um das Fenster "Repository-Einstellungen" zu öffnen.

  2. Klicken Sie auf "Hinzufügen", um dem Repository einen Remote-Repository-Pfad hinzuzufügen. Ein Fenster "Remote Details" wird geöffnet.

  3. Geben Sie einen Namen für den Remote-Pfad ein.

  4. Geben Sie die URL / den Pfad für das Remote-Repository ein

  5. Geben Sie den Benutzernamen für den Hosting-Service für das Remote-Repository ein.

  6. Klicken Sie auf "OK", um den Remote-Pfad hinzuzufügen.

  7. Klicken Sie im Fenster "Repository-Einstellungen" auf "OK". Der neue Remote-Pfad sollte jetzt zum Repository hinzugefügt werden.

  8. Wenn Sie einen bereits hinzugefügten Remote-Pfad bearbeiten müssen, klicken Sie einfach auf die Schaltfläche "Bearbeiten". Sie sollten zum Fenster "Remote-Details" weitergeleitet werden, in dem Sie die Details (URL / Pfad / Host-Typ) des Remote-Pfads bearbeiten können.

  9. Um einen Remote-Repository-Pfad zu entfernen, klicken Sie auf die Schaltfläche "Entfernen"

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

ref. Unterstützung


11

Ändern Sie den Remote-Git-URI in git@github.comanstatt inhttps://github.com

git remote set-url origin git@github.com:<username>/<repo>.git

Beispiel:

git remote set-url origin git@github.com:Chetabahana/my_repo_name.git

Der Vorteil ist, dass Sie dies git pushautomatisch tun können, wenn Sie ssh-agent verwenden :

#!/bin/bash

# Check ssh connection
ssh-add -l &>/dev/null
[[ "$?" == 2 ]] && eval `ssh-agent`
ssh-add -l &>/dev/null
[[ "$?" == 1 ]] && expect $HOME/.ssh/agent

# Send git commands to push
git add . && git commit -m "your commit" && git push -u origin master

Legen Sie eine Skriptdatei $HOME/.ssh/agent, lassen Sie es läuft ssh-addmit Expect wie folgt:

#!/usr/bin/expect -f
set HOME $env(HOME)
spawn ssh-add $HOME/.ssh/id_rsa
expect "Enter passphrase for $HOME/.ssh/id_rsa:"
send "<my_passphrase>\n";
expect "Identity added: $HOME/.ssh/id_rsa ($HOME/.ssh/id_rsa)"
interact

10

Geben Sie im Git Bash den folgenden Befehl ein:

git remote set-url origin https://NewRepoLink.git

Geben Sie die Anmeldeinformationen ein

Erledigt



9
$ git remote rm origin
$ git remote add origin git@github.com:aplikacjainfo/proj1.git
$ git config master.remote origin
$ git config master.merge refs/heads/master

8
Wenn Sie eine Antwort auf eine zehn Jahre alte Frage mit einundzwanzig weiteren Antworten hinzufügen, ist es wirklich wichtig, eine Erklärung Ihrer Antwort beizufügen und darauf hinzuweisen, welchen neuen Aspekt der Frage Ihre Antwort anspricht. Bei Antworten, bei denen es sich um eine Reihe von Befehlen handelt, ist es hilfreich zu erklären, was die einzelnen Befehle tun und wie die Auswirkungen der einzelnen Befehle rückgängig gemacht werden können, wenn dies möglich ist. Das Rückgängigmachen ist wichtig, wenn jemand die ersten Schritte ausführen kann, bei einem späteren Schritt jedoch ein Fehler auftritt.
Jason Aller

@ JasonAller Ich denke, das ist ziemlich selbsterklärend und es ist bei weitem die beste Antwort hier, die anderen sind ein Witz.
Oliver Dixon

7

Wenn Sie TortoiseGit verwenden, führen Sie die folgenden Schritte aus:

  1. Gehen Sie zu Ihrem lokalen Checkout-Ordner und klicken Sie mit der rechten Maustaste, um zu zu gelangen TortoiseGit -> Settings
  2. Wählen Sie im linken Bereich Git -> Remote
  3. Wählen Sie im rechten Bereich origin
  4. Ändern Sie nun den URLWert des Textfelds in die Position Ihres neuen Remote-Repositorys

Ihre Niederlassung und alle Ihre lokalen Verpflichtungen bleiben erhalten und Sie können so weiterarbeiten, wie Sie es zuvor getan haben.



3

So ändern Sie den Remote-Upstream: git remote set-url origin <url>


So fügen Sie weitere Upstreams hinzu: git remote add newplace <url>

So können Sie wählen, wo Sie arbeiten möchten git push origin <branch>odergit push newplace <branch>


1
Ich konnte keine anderen Erwähnungen finden, in mehreren Upstreams zu arbeiten.
Anderson Cossul

2

Sie können die URL ändern, indem Sie die Konfigurationsdatei bearbeiten. Gehen Sie zu Ihrem Projektstamm:

nano .git/config

Bearbeiten Sie dann das URL-Feld und legen Sie Ihre neue URL fest. Speichern Sie die Änderungen. Sie können die Änderungen mit dem Befehl überprüfen.

git remote -v 

1

Für diejenigen, die diese Änderung von Visual Studio 2019 aus vornehmen möchten

Öffnen Sie den Team Explorer (Strg + M).

Home -> Einstellungen

Git -> Repository-Einstellungen

Fernbedienungen -> Bearbeiten

Geben Sie hier die Bildbeschreibung ein


1

Wenn Ihr Repository privat ist, dann

  1. Öffnen Sie die Systemsteuerung über das Startmenü
  2. Wählen Sie Benutzerkonten
  3. Wählen Sie im linken Menü "Anmeldeinformationen verwalten"
  4. Löschen Sie alle Anmeldeinformationen für Git oder GitHub

Referenz


1

Überprüfen Sie Ihr Privileg

In meinem Fall muss ich meinen Benutzernamen überprüfen

Ich habe zwei oder drei Repository mit separaten Anmeldeinformationen.

Problem ist meine Erlaubnis, ich habe zwei private Git-Server und Repositorys

Dieses zweite Konto ist der Administrator dieses neuen Repos und das erste ist mein Standardbenutzerkonto und ich sollte zuerst die Erlaubnis erteilen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.