Github "tödlich: entfernter Ursprung existiert bereits"

465

Ich versuche, Michael Hartls Rails-Tutorial zu folgen , bin aber auf einen Fehler gestoßen.

Ich habe mich bei Github angemeldet, einen neuen SSH-Schlüssel ausgegeben und ein neues Repository erstellt. Wenn ich jedoch die nächste Zeile in das Terminal eingebe, wird der folgende Fehler angezeigt:

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin [email protected]:ppreyer/first_app.git
fatal: remote origin already exists.

Sie haben sich nur gefragt, ob jemand anderes auf dieses Problem gestoßen ist?

ppreyer
quelle
Wenn Sie das Git-Repository noch erstellt haben, überprüfen Sie die .git/configDatei, um festzustellen, ob der Ursprung noch nicht deklariert ist.
Denys Séguret
3
Ich hatte das gleiche Problem und benutzte den Befehl "git remote rm origin" und dann den Befehl git remote add origin URL.
Akhzar Nazir
@AkhzarNazir bitte als Antwort hinzufügen. Es hat bei mir funktioniert.
Pamela Sillah

Antworten:

895

TL; DR Sie sollten nur die vorhandene Fernbedienung aktualisieren:

$ git remote set-url origin [email protected]:ppreyer/first_app.git

Lange Version:

Wie die Fehlermeldung anzeigt, ist bereits eine Fernbedienung mit demselben Namen konfiguriert. Sie können also entweder die neue Fernbedienung mit einem anderen Namen hinzufügen oder die vorhandene aktualisieren, wenn Sie sie nicht benötigen:

Gehen Sie wie folgt vor, um eine neue Fernbedienung hinzuzufügen, die beispielsweise githubanstelle von origin(die offensichtlich bereits in Ihrem System vorhanden ist) aufgerufen wird :

$ git remote add github [email protected]:ppreyer/first_app.git

Denken Sie jedoch daran, dass Sie überall im Tutorial "Ursprung" durch "Github" ersetzen sollten . Zum Beispiel $ git push origin mastersollte jetzt sein $ git push github master.

Wenn Sie jedoch sehen möchten, was originbereits vorhanden ist, können Sie a $ git remote -v. Wenn Sie der Meinung sind, dass dies ein Fehler ist, können Sie es folgendermaßen aktualisieren:

$ git remote set-url origin [email protected]:ppreyer/first_app.git
Agis
quelle
5
Warum sollte Origin in seinem neuen Repository existieren? Er sollte das Problem beheben (um sicherzustellen, dass beispielsweise origin der richtige Alias ​​für Github ist), anstatt einen neuen Alias ​​zu erstellen, an den er erinnern müsste.
Denys Séguret
1
Ok, das hat funktioniert, aber wenn ich dann zum nächsten Schritt gehe und git push -u origin master in das Terminal eingebe, wird der folgende Fehler angezeigt: FEHLER: Repository nicht gefunden. tödlich: Das entfernte Ende hat unerwartet aufgelegt Was bedeutet das?
ppreyer
Was macht git remote -vAusgänge? Kannst du es auch versuchen git push origin master?
Agis
16
git remote rm originhat nicht ganz funktioniert. Es wurde ein Fehler ausgegeben: Der Konfigurationsabschnitt 'remote.origin' konnte nicht entfernt werden
Andrew Savinykh
20
@zespri: usegit remote set-url --add origin [email protected]/username/repo.git
eduncan911
342

Zusamenfassend,

git remote rm origin
git remote add origin [email protected]:username/myapp.git

Hat funktioniert !

Prost!

Manish Shrivastava
quelle
kann das jemand erklären? Git Remote RM Herkunft
Kick Buttowski
1
@KickButtowski rm bezieht sich auf den in * nix verwendeten Befehl remove. Dieser Befehl weist git an, die Details des Remote-Servers mit dem Namen "origin" zu "entfernen".
Rob
Keine Notwendigkeit, dies in 2 Schritten zu tun, wenn Sie es in 1 tun können. Siehe meine Antwort.
Agis
37

Für diejenigen unter Ihnen, die auf den häufig auftretenden Fehler "Schwerwiegend: Remote-Ursprung existiert bereits." Stoßen, oder wenn Sie versuchen, den Ursprung zu entfernen und "Fehler: Konfigurationsabschnitt remote.origin konnte nicht entfernt werden" angezeigt werden, müssen Sie Folgendes tun Stellen Sie den Ursprung manuell ein.

Windows POSH ~ Git für Windows PowerShell (und GitHub für Windows App) hat ein Problem damit.

Ich bin darauf gestoßen, wie so oft, als ich meine Oktopresse aufstellte. Also, hier ist, wie ich es zum Laufen gebracht habe.

Überprüfen Sie zunächst Ihre Fernbedienungen:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin

Sie werden zuerst feststellen, dass meine Herkunft keine URL hat. Jeder Versuch, es zu entfernen, umzubenennen usw. schlägt fehl.

Ändern Sie die URL also manuell:

git remote set-url --add origin https://github.com/eduncan911/eduncan911.github.io.git

Dann können Sie bestätigen, dass es funktioniert hat, indem Sie es git remote -verneut ausführen :

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin  https://github.com/eduncan911/eduncan911.github.io.git (fetch)
origin  https://github.com/eduncan911/eduncan911.github.io.git (push)

Dies hat Dutzende von Git-Repos behoben, mit denen ich Probleme hatte, GitHub, BitBucket GitLab usw.

eduncan911
quelle
2
Das hat bei mir funktioniert. Danke @ eduncan911. Die github-Anweisungen geben an, dass ein "git init" ausgeführt werden soll, um ein neues Repository in der Befehlszeile zu erstellen. Dadurch wird über diese PS-Schnittstelle eine Ursprungsfernbedienung ohne URL erstellt.
Mikekidder
Ah yah, das ist ein weiteres Problem und warum musst du das tun? +1 Vielleicht sollten wir dies POSH Git auf Github melden.
eduncan911
Wie finde ich die URL bei Verwendung von Gitlab?
Madmenyo
1
@MennoGouw Ich denke, das ist eine Off-Topic-Frage. Normalerweise befindet es sich jedoch auf dem Dashboard / Home des Repo. Es ist auch in den Einstellungen für das Projekt.
eduncan911
36

Sie können sehen, zu welchen Remote-Repositorys Sie eine Verbindung herstellen möchten

git remote -v

Das gibt eine Liste in diesem Format zurück:

origin  [email protected]:github/git-reference.git (fetch)
origin  [email protected]:github/git-reference.git (push)

Das könnte Ihnen helfen, herauszufinden, worauf der ursprüngliche "Ursprung" hinwies.

Wenn Sie die Remote-Verbindung beibehalten möchten, die Sie mit -v sehen, aber dennoch dem Rails-Lernprogramm folgen möchten, ohne sich für das Repo Ihres Lernprogramms an 'github' (oder einen anderen Namen) erinnern zu müssen, können Sie Ihr anderes Repository mit dem umbenennen Befehl:

git remote rename [current name] [new name]

wie in:

git remote rename origin oldrepo

Sie sollten dann in der Lage sein, Ihr Tutorial fortzusetzen.

Mark Semsel
quelle
35

Zuerst mache ein:

git remote rm origin

dann

git remote add origin https://github.com/your_user/your_app.git

und voila! Hat für mich gearbeitet!

Obed Castillo
quelle
Warum den Ursprung entfernen? Gibt es eine Möglichkeit, etwas anstelle des Ursprungs hinzuzufügen?
Abhils
27

In dem speziellen Fall, dass Sie ein neues Repository erstellen, beginnend mit einem alten Repository, das Sie als Vorlage verwendet haben (Tun Sie dies nicht, wenn dies nicht Ihr Fall ist). Löschen Sie die Git-Dateien des alten Repositorys vollständig, damit Sie eine neue starten können:

rm -rf .git

Und starten Sie dann wie gewohnt ein neues Git-Repository neu:

git init
git add whatever.wvr ("git add --all" if you want to add all files)
git commit -m "first commit"
git remote add origin [email protected]:ppreyer/first_app.git
git push -u origin master
Wilmer E. Henao
quelle
13

Wenn Sie überprüfen müssen, welche Remote-Repos Sie mit Ihren lokalen Repos verbunden haben, wird ein cmd angezeigt:

git remote -v

Wenn Sie nun das Remote-Repo (z. B. Origin) entfernen möchten, können Sie Folgendes tun:

git remote rm origin
Samarth Shah
quelle
Dies sieht eher nach einem Kommentar als nach einer Antwort aus. Mit etwas mehr Wiederholungen können Sie Kommentare posten .
Nathan Tuggy
@ NathanTuggy Nein, es ist eine vollständige Antwort und meiner bescheidenen Meinung nach direkter als die beliebteste in diesem Thread.
daOnlyBG
@daOnlyBG: Ich bin mir nicht sicher, wie die Antwort aussah, als ich sie sah, da dies vor Kommentaren war, die in Kulanzfristen gesperrt waren (und daher möglicherweise stillschweigend bearbeitet wurden). Aber jetzt ist es einigermaßen vollständig, da stimme ich zu.
Nathan Tuggy
@ NathanTuggy Woah, wusste nicht, dass es einmal stille Änderungen gab. Das erklärt.
daOnlyBG
7

Diese Fehlermeldung zeigt an, dass Sie bereits eine Fernbedienung in Ihrem Git-Verzeichnis haben. Wenn Sie mit dieser Fernbedienung zufrieden sind, können Sie Ihren Code pushen. Wenn nicht oder wenn Sie nicht einfach pushen können:

git remote remove origin
git remote add origin [email protected]:ppreyer/first_app.git

Voilà!

MrHanachoo
quelle
7

Das Konzept von remote ist einfach die URL Ihres Remote-Repositorys.

Das originist ein Alias , der auf diese URL verweist. Anstatt also jedes Mal die gesamte URL zu schreiben, wenn wir etwas in unser Repository verschieben möchten, verwenden wir einfach diesen Alias ​​und führen Folgendes aus:

git push -u origin master

Telling git pushunseren Code von unserem lokalen Master - Zweig auf die Remote - Ursprung - Repository .

Immer wenn wir ein Repository klonen , erstellt git diesen Alias ​​standardmäßig für uns. Auch wenn wir ein neues Repository erstellen, erstellen wir es einfach selbst.

Wie auch immer, wir können diesen Namen jederzeit in einen beliebigen Namen ändern, indem wir Folgendes ausführen:

git remote rename [current-name] [new-name]

Da es auf der Clientseite der git- Anwendung (auf unserem Computer) gespeichert ist und sich ändert, hat dies keine Auswirkungen auf unseren Entwicklungsprozess und auch nicht auf unser Remote-Repository. Denken Sie daran, es ist nur ein Name , der auf ein zeigt Adresse .

Das einzige, was sich hier durch das Umbenennen des Alias ​​ändert, ist, dass wir diesen neuen Namen deklarieren müssen jedes Mal wenn wir etwas in unser Repository verschieben.

git push -u my-remote-alias master

Offensichtlich kann ein einzelner Name nicht auf zwei verschiedene Adressen verweisen. Deshalb erhalten Sie diese Fehlermeldung. Auf originIhrem lokalen Computer ist bereits ein Alias ​​benannt . Um zu sehen, wie viele Aliase Sie haben und welche es sind, können Sie diesen Befehl einleiten:

git remote -v

Dies zeigt Ihnen alle Aliase sowie die entsprechenden URLs.

Sie können sie auch entfernen, wenn Sie Folgendes ausführen möchten:

git remote rm my-remote-alias

Also in Kürze:

  • Finde heraus, was du schon hast.
  • entfernen oder umbenennen,
  • Fügen Sie Ihre neuen Aliase hinzu.

Viel Spaß beim Codieren.

Kobayashi
quelle
5

Wenn Sie bereits ein Projekt für einen anderen Speicher hinzufügen, z. B. auf github hochladen und dann auf bitbucket hochladen, wird diese Art von Fehler angezeigt.

So entfernen Sie Fehler: Löschen Sie die Git-Hub-Datei in Ihrem Projekt und wiederholen Sie die folgenden Schritte ...

git init       
git remote add origin [email protected]:Yourname/firstdemotry.git  
git add -A  
git commit -m 'Message'  
git push -u origin master  
Chaudhary Prakash
quelle
5

Dies kann auch passieren, wenn Sie den Befehl im Verzeichnis ausführen, ohne dass git initialisiert wurde. Wenn dies der Fall ist, führen Sie zuerst Folgendes aus:

git init
Jan Pi
quelle
4

Für die Verwendung von Git muss man sein

Wurzel

wenn nicht, dann benutze sudo

zum Entfernen des Ursprungs:

Git Remote entfernen Ursprung

zum Hinzufügen des Ursprungs:

git remote add origin http: // giturl

Karan
quelle
3
  • $ git remote add origin [email protected]:abc/backend/abc.git

    In diesem Befehl ist origin nicht Teil des Befehls, sondern nur der Name Ihres Remote-Repositorys. Sie können einen beliebigen Namen verwenden.

    • Zuerst können Sie überprüfen, was es enthält, indem Sie den folgenden Befehl verwenden

    $ git remote -v

    Es gibt Ihnen ein Ergebnis wie dieses origin [email protected]:abc/backend/abc.git (fetch) origin [email protected]:abc/backend/abc.git (push) origin1 [email protected]:abc/backend/abc.git (fetch) origin1 [email protected]:abc/backend/abc.git (push)

    Wenn es Ihren Remote-Repository-Pfad enthält, können Sie direkt darauf zugreifen, ohne erneut den Ursprung hinzuzufügen

    • Wenn es Ihren Remote-Repository-Pfad nicht enthält

    Dann können Sie einen neuen Ursprung mit einem anderen Namen hinzufügen und diesen verwenden, um wie zu pushen $ git remote add origin101 [email protected]:abc/backend/abc.git

    Oder Sie können den vorhandenen Ursprungsnamen umbenennen und Ihren Ursprung hinzufügen

    git remote rename origin destination

    Feuer unter Befehl wieder

    $ git remote -v

    destination [email protected]:abc/backend/abc.git (fetch) destination [email protected]:abc/backend/abc.git (push)

    Der vorhandene Repos-Name wird geändert, sodass Sie diesen Ursprungsnamen verwenden können

    Oder Sie können einfach Ihren vorhandenen Ursprung entfernen und Ihren Ursprung hinzufügen

    git remote rm destination

Foram Sojitra
quelle
3

Versuche dies

  • cd existierende_repo
  • git remote umbenennen origin old-origin
Sreeraj VR
quelle
Bro danke, das ist das einzige, was für mich funktioniert hat.
Akshat Tamrakar
2

Beim Hinzufügen eines Repositorys zu git hun mit git bash unter Windows tritt der gleiche Fehler auf

 git remote add origin https://github.com/axaysushir/netflix_page_clone.git

fatal: Remote-Ursprung existiert bereits.

fatal: remote origin already exists.

 ! [rejected]        master -> master (fetch first)

Fehler: Einige Refs konnten nicht an ' https://github.com/axaysushir/meditation_app_using_js.git ' gesendet werden.

Aktualisieren Sie das Repository mit dem folgenden Befehl

$ git remote set-url origin https://github.com/axaysushir/netflix_page_clone.git

Fügen Sie dann das Repository mit git remote add github hinzu, anstatt git remote add origin

$ git remote add github https://github.com/axaysushir/netflix_page_clone.git

Und dann schreiben Sie den folgenden Befehl anstelle von Git Push Origin Master. Dadurch wird Ihr Repository auf Github hochgeladen

$ git push github master
akshay_sushir
quelle
2

Aktualisieren Sie den Ursprung, falls er bereits mit diesem Befehl vorhanden ist

git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git
Sriram
quelle
0

Überprüfen Sie zunächst, wie viele Aliase Sie haben und welche es sind. Sie können diesen Befehl git remote -v starten

Dann sehen Sie, in welchem ​​Repository Sie sich befinden, und versuchen Sie es mit git remote set-url --add [Dann Ihr Repositorium-Link] git push -u origin master

Sarthak Dalabehera
quelle
0

Zumindest bei Bash können wir den Rückgabewert des Exit-Codes des Befehls auf 0 setzen

Sie können die alte Fernbedienung entfernen und erneut hinzufügen

git remote remove $1 || true
git remote add $1 $2
motia
quelle
0

Wenn Sie dies über die GUI tun möchten, gehen Sie wie folgt vor:

  1. Stellen Sie sicher, dass "versteckte Dateien" in Ihrem Projektordner sichtbar sind
  2. Wechseln Sie in das Verzeichnis .git
  3. Bearbeiten Sie die URL-Datei in der Datei config.txt und speichern Sie die Datei!
inspiriertMichael
quelle