fatal: 'origin' scheint kein Git-Repository zu sein


97

Ich habe ein Repository moodleauf meinem Github-Konto, das ich forkedaus dem offiziellen Repository habe.

Ich habe es dann auf meinem lokalen Computer geklont. Es hat gut funktioniert. Ich habe mehrere Zweige erstellt (unter dem masterZweig). Ich habe mehrere Commits gemacht und es hat gut funktioniert.

Ich weiß nicht, wie ich den folgenden Fehler bekomme, wenn ich das tue: git push origin master

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Wie kann ich den Fehler beheben, ohne mein Repository auf Github zu beeinträchtigen?

Ich benutze Ubuntu 12.10

Der Inhalt meiner .git/configNacharbeit cat $(git rev-parse --show-toplevel)/.git/configgibt:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[branch "master"]
[branch "MOODLE_23_STABLE"]
[branch "MOODLE_24_STABLE"]
[remote "upstream"]
    url = git://git.moodle.org/moodle.git
    fetch = +refs/heads/*:refs/remotes/upstream/*

Bitte drucken Sie den Inhalt von .git / config aus und fügen Sie ihn hier hinzu
pmod

@pmod: Bitte sehen Sie meine aktualisierte Frage.
Xan

Der Ordner, in den Sie auf dem lokalen Computer geklont haben, sollte den Ordner .git enthalten.
pmod

@xancat $(git rev-parse --show-toplevel)/.git/config
bereal

@pmod: Ja, ich habe es gefunden. Bitte beachten Sie meine aktualisierte Frage.
Xan

Antworten:


115

$HOME/.gitconfigist deine globale Konfiguration für git.
Es gibt drei Ebenen von Konfigurationsdateien .

 cat $(git rev-parse --show-toplevel)/.git/config

( Erwähnt von Bereal ) ist Ihre lokale Konfiguration, lokal auf dem Repo Sie geklont.

Sie können auch aus Ihrem Repo heraus Folgendes eingeben:

git remote -v

Überprüfen Sie, ob eine Fernbedienung mit dem Namen "Ursprung" darin aufgeführt ist.

Wenn nicht, können Sie diese Fernbedienung (die beim Klonen eines Repos standardmäßig erstellt wird) erneut hinzufügen:

git remote add origin url/to/your/fork

Das OP erwähnt:

Tun git remote -vgibt:

upstream git://git.moodle.org/moodle.git (fetch) 
upstream git://git.moodle.org/moodle.git (push)

Also originfehlt ' ': der Verweis auf deine Gabel.
Siehe " Was ist der Unterschied zwischen originund upstreamin Github "

Geben Sie hier die Bildbeschreibung ein


Tun git remote -vgibt: upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
Xan

@xan 'upstream "ist das Repo, das Sie gegabelt haben. Ihnen fehlt der Ursprung, der Ihre Gabel auf Github ist. Siehe stackoverflow.com/a/15632224/6309 und stackoverflow.com/a/9257901/6309
VonC

Wie ändere ich meine Gabel auf Master?
Wolfpack'08

@ Wolfpack'08 "Gabel" bedeutet ein Repository (mit mehreren Zweigen). Der Wechsel zu einem Zweig ist eine lokale Operation, die einen Git-Switch umfasst: stackoverflow.com/a/57066202/6309 . Was bedeutet es für Sie in Ihren eigenen Worten, "eine Gabel in einen Meister zu verwandeln"? Ändern Sie Ihren lokalen Zweig in Ihrem lokalen geklonten Repository (Ihrer Remote-GitHub-Gabel)?
VonC

1
Wenn Sie die Fernbedienung besitzen, drücken Sie einfach darauf : git push -u ghy master.
VonC

22

Ich hatte das gleiche Problem, als ich mein Repository auf GitHub umbenannte. Ich habe versucht zu pushen, an welcher Stelle ich den Fehler bekam

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Ich musste die URL mit ändern

git remote set-url origin ssh://git@github.com/username/newRepoName.git

Danach funktionierten alle Befehle einwandfrei. Sie können die Änderung mit überprüfen

git remote -v

In meinem Fall wurde nach erfolgreicher Änderung das korrekte umbenannte Repo in der URL angezeigt

[aniket@alok Android]$ git remote -v
origin  ssh://git@github.com/aniket91/TicTacToe.git (fetch)
origin  ssh://git@github.com/aniket91/TicTacToe.git (push)

14

Möglicherweise ist der andere Zweig, aus dem Sie ziehen möchten, nicht synchron. Versuchen Sie es also vor dem Hinzufügen und Entfernen von Remote (wenn Sie versuchen, vom Master zu ziehen)

git pull origin master

Für mich löste dieser einfache Anruf diese Fehlermeldungen:

  • fatal: 'master' scheint kein Git-Repository zu sein
  • fatal: Konnte nicht aus dem Remote-Repository lesen.

3

Versuchen Sie zuerst, einen Remote-Ursprung zu erstellen. Möglicherweise fehlt dieser, weil Sie den Namen des Remote-Repos ändern

git remote add origin URL_TO_YOUR_REPO


2

Dies beantwortet Ihre Frage nicht, aber ich habe eine ähnliche Fehlermeldung erhalten, jedoch aus einem anderen Grund. Gestatten Sie mir, meinen Beitrag zum Zwecke der Informationssammlung zu verfassen.

Ich habe ein Git-Repo auf einem Netzlaufwerk. Nennen wir dieses Netzwerklaufwerk RAID. Ich habe dieses Repo auf meinem lokalen Computer (LOCAL) und auf meinem Number Crunching Cluster (CRUNCHER) geklont. Der Einfachheit halber habe ich das Benutzerverzeichnis meines Kontos in CRUNCHER auf meinem lokalen Computer bereitgestellt. So kann ich Dateien auf CRUNCHER bearbeiten, ohne die Arbeit in einem SSH-Terminal erledigen zu müssen.

Heute habe ich Dateien im Repo auf CRUNCHER über meinen lokalen Computer geändert. Irgendwann habe ich beschlossen, die Dateien festzuschreiben, also hat a ein Festschreiben durchgeführt. Das Hinzufügen der geänderten Dateien und das Festschreiben funktionierten wie erwartet, aber als ich anriefgit push ich anrief, wurde eine Fehlermeldung angezeigt, die der in der Frage angegebenen ähnelte.

Der Grund war, dass ich pushaus dem Repo auf CRUNCHER auf LOCAL angerufen habe. Alle Pfade in der Konfigurationsdatei waren also einfach falsch.

Als ich meinen Fehler bemerkte, loggte ich mich über Terminal bei CRUNCHER ein und konnte das Commit pushen.

Fühlen Sie sich frei zu kommentieren, wenn meine Erklärung nicht verstanden werden kann oder Sie meinen Beitrag überflüssig finden.


1

Ich hatte den gleichen Fehler beim Verzweigungsnamen des Git-Pull-Ursprungs, als der Remote-Ursprung als Pfad fs und nicht als ssh in .git / config festgelegt wurde :

fatal: '/path/to/repo.git' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly

Es war so (dies funktioniert nur für Benutzer auf demselben Git- Server , die Zugriff auf Git haben):

url = file:///path/to/repo.git/

Es wurde so behoben (dies funktioniert bei allen Benutzern, die Zugriff auf den Git-Benutzer haben (ssh authorizes_keys oder password)):

url = git@domain.com:path/to/repo.git

Der Grund, warum ich es als Verzeichnispfad hatte, war, dass sich die Git- Dateien auf demselben Server befinden.


Tatsächlich! Die /After-Domain muss :bei Verwendung von SSH sein. Einfach mit überprüfen git remote -v.
Noam Manos
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.