git - remote add origin vs remote set-url origin

413

Ich erstelle ein neues Repository:

git init
echo "# MESSAGE" >> README.md
git add README.md
git commit -m "first commit"

Dann möchte ich mein Commit in das leere Remote-Repository verschieben, das auf github erstellt wurde, damit ich Remote festlegen muss.

Was ist der Unterschied zwischen der Verwendung der folgenden Befehle? ::

git remote add origin [email protected]:User/UserRepo.git
git remote set-url origin [email protected]:User/UserRepo.git

Am Ende führe ich Push aus:

git push -u origin master

Edit1:

Was passiert, wenn ich den Remote-Set-URL-Ursprung direkt nach git init aufrufe? Erstellt der Ursprung der Remote-Set-URL den Ursprung? Wenn der Ursprung bereits nach git init existiert, gibt es keinen Unterschied zwischen der Verwendung dieser Befehle in meinem Szenario, oder?

Irbis
quelle

Antworten:

509

Das folgende wird verwendet, um eine neue Fernbedienung hinzuzufügen:

git remote add origin [email protected]:User/UserRepo.git

Im Folgenden wird die URL eines vorhandenen Remote-Repositorys geändert:

git remote set-url origin [email protected]:User/UserRepo.git

Im Folgenden wird Ihr Code in den Hauptzweig des mit definierten Remote-Repositorys verschoben, originund -uSie können Ihren aktuellen lokalen Zweig auf den Remote-Hauptzweig verweisen:

git push -u origin master

Dokumentation

Shubham Khatri
quelle
wenn ich von A zu meinem lokalen klone und dann "git remote set-url B" verwende. löscht es das Repository in A? Ich versuche, ein Repository aus AWS-Code zu klonen, das für GitLab
Josh
Wenn ich ein neues Repo mache, mache ich normalerweise einen Fehler und setze den Ursprung auf den Upstream. git remote set-url origin [email protected]:User/UserRepo.git
Honey
-u Lassen Sie Ihren aktuellen lokalen Zweig auf den Remote-Hauptzweig verweisen. Ich verstehe nicht, warum ich so etwas tun möchte. Ich meine, nehmen wir an, ich habe vom Master gezogen, eine neue FeatureBranch erstellt ... meine Änderungen festgeschrieben und dann meine Änderungen an origin / featureBranch übertragen und diese Funktion dann in meinen Master zusammengeführt / gezogen. <- bin ich momentan noch nicht mit meiner featureBranch fertig? Warum sollte ich darauf verweisen müssen? Sollte ich nicht zu local / master auschecken und dann vom neuesten Ursprung ziehen?
Honig
Die Antwort ist sehr gut, mit Ausnahme der Erklärung der -uFlagge, die meiner Meinung nach irreführend ist. Für die Erklärung der -uFlagge, würde ich empfehlen , einen Blick auf diesen Thread zu haben stackoverflow.com/questions/18867824/...
hoang tran
und -u lassen Sie Ihren aktuellen lokalen Zweig auf den Remote-Master-Zweig verweisen: Ich verstehe diese Zeile nicht ... Worauf haben Sie gemeint?
Regen
62
  • Wenn Sie ausführen git remote add origin [email protected]:User/UserRepo.git, wird eine neue Remote mit dem Namen erstellt origin.
  • Wenn Sie ausführen git remote set-url origin [email protected]:User/UserRepo.git, sucht git nach einem vorhandenen Remote mit Namen originund ändert dessen Remote-Repository-URL. Wenn git keine Remote mit Namen finden kann origin, wird ein Fehler ausgegeben fatal: No such remote 'origin'.

Wenn Sie ein neues Repository erstellen möchten git remote add origin [email protected]:User/UserRepo.git, können Sie Remote hinzufügen.

RAM
quelle
Bitte sehen Sie Edit1
Irbis
git initfügt keinen Ursprung hinzu. Nur das Git-Repository wird initialisiert. Wenn Sie ein vorhandenes Repository klonen, hat es einen Remote-Ursprung. Empfehlung ist Verwendung git add, nachdem git initnicht set-url.
Ram
@Ram Es ist offensichtlich, set-url nach git init nicht aufzurufen, da dies keinen Sinn ergibt. set-url soll geändert werden und add soll neue Remote hinzufügen.
Santosh
61

Im Folgenden wird Ihr lokales Repo neu initialisiert. auch Löschen von Remote-Repos (dh Ursprung):

git init

Dann wird unten "Ursprung" erstellt, wenn es nicht existiert:

git remote add origin [repo-url]

Andernfalls können Sie den set-urlUnterbefehl verwenden, um eine vorhandene Fernbedienung zu bearbeiten:

git remote set-url origin [repo-url]

Sie können auch vorhandene Fernbedienungen mit überprüfen

git remote -v

Hoffe das hilft!

vpibano
quelle
1
git remote set-url origin ...Auf einem neu initiierten Repo bekam ich die Nachricht fatal: Kein solcher entfernter "Ursprung". git remote add origin ...hat funktioniert.
Robb Vandaveer
@RobbVandaveer Danke für den Fang! Ich habe die Antwort für die korrekte Verwendung des Unterbefehlsset-url
vpibano
32

git remote add=> Fügt eine neue Fernbedienung hinzu.

git remote set-url=> AKTUALISIERT vorhandene Fernbedienung.


  1. Der nachfolgende Remote-Name addist ein neuer Remote-Name, der vor diesem Befehl nicht vorhanden war.
  2. Der nachfolgende Remote-Name set-urlsollte bereits als Remote-Name für Ihr Repository vorhanden sein.

git remote add myupstream someurl => myupstream remote name war nicht vorhanden und wurde jetzt mit diesem Befehl erstellt.

git remote set-url upstream someurl => Upstream-Remote-Name existiert bereits Ich ändere nur die URL.


git remote add myupstream https://github.com/nodejs/node => **ADD** If you don't already have upstream
git remote set-url upstream https://github.com/nodejs/node # => **UPDATE** url for upstream
Tomer Ben David
quelle
30

Verwenden Sie zum Hinzufügen einer neuen Fernbedienung den git remote addBefehl auf dem Terminal in dem Verzeichnis, in dem Ihr Repository gespeichert ist.

Der git remote set-urlBefehl ändert eine vorhandene Remote-Repository-URL.

Grundsätzlich remote addist es also, ein neues hinzuzufügen, remote set-urlein vorhandenes zu aktualisieren

Murf
quelle
28

1. git remote add origin [email protected]:User/UserRepo.git

  • Dieser Befehl ist der zweite Schritt in der Befehlsreihe, nachdem Sie git mit in Ihr aktuelles Arbeitsrepository initialisiert haben git init.
  • Dieser Befehl bedeutet einfach "Sie fügen den Speicherort Ihres Remote-Repositorys hinzu, an den Sie Ihre Dateien verschieben / ziehen möchten !! .."
  • Ihr Remote-Repository kann sich überall auf Github, Gitlab, Bitbucket usw. befinden.
  • Hier originist ein Alias ​​/ alternativer Name für Ihr Remote-Repository, damit Sie nicht jedes Mal den gesamten Pfad für Remote eingeben müssen. Von nun an erklären Sie, dass Sie diesen Namen (Ursprung) verwenden, um auf Ihre Remote zu verweisen. Dieser Name könnte alles sein.
  • Um zu überprüfen, ob die Fernbedienung richtig eingestellt ist, geben Sie Folgendes ein: git remote -v

    ODER git remote get-url origin

2. git remote set-url origin [email protected]:User/UserRepo.git

Dieser Befehl bedeutet, dass Sie, wenn Sie versehentlich zum ersten Mal in ein falsches Repository pushen, mit dem obigen Befehl "Ihren Remote-Repository-Pfad zurücksetzen" können .

3. git push -u remote master

Dieser Befehl überträgt Ihre Dateien einfach in das Remote-Repository. Git hat das Konzept eines so genannten "Zweigs" , sodass standardmäßig alles an den Master übertragen wird Zweig , sofern nicht ausdrücklich einen anderen Zweig angegeben.

Informationen zur Liste aller Zweige in Ihrem Repository-Typ:git branch

Tahir77667
quelle
10

Versuche dies:

git init  
git remote add origin your_repo.git  
git remote -v  
git status  
Tal Hakmon
quelle
7

Sie können nicht remote set-url origingleich danach aufrufengit init , da der git remote set-urlBefehl keinen Ursprung erstellt, sondern eine vorhandene Remote-Repository-URL ändert .

git remote set-urlDaher funktioniert der Befehl nur, wenn Sie entweder das Repository geklont oder manuell eine Fernbedienung namens origin hinzugefügt haben.

Sie können remote mit dem Befehl überprüfen git remote -v, ob die Remote-URL nach dem Namen angezeigt wird. Wenn dieser Befehl einen Fehler ausgibt, fatal: Not a git repository (or any of the parent directories): .gitist das Repository nicht vorhanden, sodass Sie den Ursprung mit dem Befehl hinzufügen müssengit remote add

1. git remote add

Mit diesem Befehl können Sie eine neue Fernbedienung hinzufügen. Sie können diesen Befehl auf dem Terminal im Verzeichnis Ihres Repositorys verwenden.

Der Befehl git remote add akzeptiert zwei Argumente:

  1. Ein entfernter Name , z. B. Ursprung
  2. Eine Remote-URL , z. B. https://github.com/user/repo.git

Zum Beispiel:

git remote add origin https://github.com/user/repo.git

2.git remote set-url

Der Befehl git remote set-url ändert eine vorhandene Remote-Repository-URL.

Der Befehl git remote set-url akzeptiert zwei Argumente:

  1. Ein vorhandener Remote-Name . Zum Beispiel originoder upstreamsind zwei gängige Optionen.
  2. Eine neue URL für die Fernbedienung

Beispielsweise können Sie mit dem git remote set-urlBefehl die URL Ihrer Fernbedienung von SSH in HTTPS ändern .

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

Mit dem Befehl können Sie überprüfen, ob sich die Remote-URL geändert hat git remote -v.

Hinweis: "Ursprung" ist eine Konvention, die nicht Teil des Befehls ist. "Ursprung" ist der lokale Name des Remote-Repositorys. Sie können einen beliebigen Namen anstelle von "Ursprung" verwenden.

Zum Beispiel:

git remote add myorigin [email protected]:user/repo.git
git remote set-url myorigin https://github.com/user/repo.git

Referenzen von github: remote add , remote set-url

Haritsinh Gohil
quelle
0

Wenn Sie ein vorhandenes Projekt haben und eine Remote-Repository-URL hinzufügen möchten, müssen Sie den folgenden Befehl ausführen

git init

Wenn Sie die Datei readme.md hinzufügen möchten, können Sie sie mit dem folgenden Befehl erstellen und hinzufügen.

git add README.md

Machen Sie Ihr erstes Commit mit dem folgenden Befehl

git commit -m "first commit"

Jetzt haben Sie den gesamten lokalen Repository-Prozess abgeschlossen. Wie fügen Sie nun die Remote-Repository-URL hinzu? Überprüfen Sie den folgenden Befehl. Dies ist für die SSH-URL. Sie können sie für https ändern.

git remote add origin [email protected]:user-name/repository-name.git

Wie Sie Ihr erstes Commit ausführen, siehe folgenden Befehl :

git push -u origin master
Sumit Jaiswal
quelle