Git Push: "Fataler 'Ursprung' scheint kein Git-Repository zu sein - fatal Konnte nicht aus dem Remote-Repository lesen."


117

Ich weiß, dass ähnliche Fragen bereits gestellt wurden.

Ich glaube jedoch, dass mein Problem auf einen Fehler zurückzuführen ist, den ich zuvor gemacht habe, und daher anders ist: Lassen Sie mich das erklären.

Alles funktionierte reibungslos, so gut ich konnte:

  • git add . Alle Dateien aus meinem lokalen Repository.
  • git commit -m "message here" Nachrichten zu meinen Commits hinzufügen.
  • git push origin master um meine Dateien auf GitHub hochzuladen.
  • git push heroku master um meine Dateien auf Heroku hochzuladen.

Irgendwann habe ich jedoch einen neuen Zweig vor Ort erstellt, der add-calendar-modelfür den Fall aufgerufen wird, dass die nächsten Schritte der App-Entwicklung nach Süden gehen ...

... genau das ist passiert.

Trotz vieler Versuche gelang es mir jedoch nicht, den ursprünglichen Code - dh den Code von vor dem Erstellen des neuen Zweigs - vom masterZweig in mein lokales Repository zu erhalten.

Daher habe ich beschlossen, alle Dateien manuell aus meinem lokalen Repository und git clonemeinem masterZweig von GitHub zu löschen .

Auf diese Weise habe ich alle meine Dateien zurückbekommen, aber jetzt kann ich nicht mehr in das Remote-Repository übertragen.

Jedes Mal, wenn ich versuche auszuführen git push origin add-calendar-modeloder git push origin master, erhalte ich die folgende Fehlermeldung:

fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Ich bin mit Git und GitHub nicht sehr vertraut, wie Sie vielleicht schon vermutet haben, und ich muss zugeben, dass ich keine Ahnung habe, wie ich das beheben kann.

Irgendeine Idee?


Ich hatte einen ähnlichen Fehler, aber mein Problem war, dass ich git im übergeordneten Verzeichnis des aktuellen Ordners initialisiert hatte, in dem ich es versuchte. Nur für den Fall, dass noch jemand vor Ihnen steht, können Sie nachsehen, wo der Git initialisiert ist, und es dann erneut versuchen.
Himanshu Kriplani

Antworten:


212

Überprüfen Sie zunächst, ob Ihr Ursprung festgelegt ist, indem Sie ausführen

git remote -v

Dies sollte Ihnen alle Push / Fetch-Fernbedienungen für das Projekt anzeigen.

Wenn dies ohne Ausgabe zurückkehrt, fahren Sie mit dem letzten Codeblock fort.

Überprüfen Sie den Namen / die Adresse der Fernbedienung

Wenn dies zurückgibt und anzeigt, dass Sie Fernbedienungen eingestellt haben, überprüfen Sie, ob der Name der Fernbedienung mit der Fernbedienung übereinstimmt, die Sie in Ihren Befehlen verwenden.

$git remote -v
myOrigin ssh://git@example.com:1234/myRepo.git (fetch)
myOrigin ssh://git@example.com:1234/myRepo.git (push)

# this will fail because `origin` is not set
$git push origin master

# you need to use
$git push myOrigin master

Wenn Sie die Fernbedienung umbenennen oder die URL der Fernbedienung ändern möchten, müssen Sie zuerst die alte Fernbedienung entfernen und dann die richtige hinzufügen.

Entfernen Sie die alte Fernbedienung

$git remote remove myOrigin

Fehlende Fernbedienung hinzufügen

Sie können dann die richtige Fernbedienung mit hinzufügen

$git remote add origin ssh://git@example.com:1234/myRepo.git

# this will now work as expected
$git push origin master

Es funktionierte für mich ohne die ssh://vorgit@example.com:1234/myRepo.git
Carol-Theodor Pelu

Ich habe diese Frage gelesen, ob Sie auch bei dem neuen Repository-Push-Fehler helfen können.
StaticVariable

12

Wie Matt Clark oben sagte

Der Ursprung ist jedoch möglicherweise nicht festgelegt. Überspringen Sie daher den Löschschritt, und versuchen Sie einfach, ihn hinzuzufügen, um dies zu beheben.

git remote add origin <"clone">

Wobei "Klon" einfach in Ihr GitHub-Repo geht und die "HTTPS-Klon-URL" kopiert und in GitBash einfügt


3

Stellen Sie sicher, dass die Konfigurationsdatei bei .git korrekt ist ... Überprüfen Sie die URL und stellen Sie sicher, dass Sie das richtige Protokoll für Ihre Schlüssel verwenden ... ProjectWorkspace / .git / config

  ~Wrong url for git@bitbucket
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = gitbucket.org:Prezyack/project-one-hello.git
    fetch = +refs/heads/*:refs/remotes/origin/*

 ~Wrong URL for SSH...
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = https://emmap1@bitbucket.org/emmap1/bitbucketspacestation.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

Wir sehen uns die URL an ... zB: Für Bitbucket erwarten Sie git@bitbucket.org .... Wenn es gitbucket.org ist. Nehmen Sie die erforderlichen Änderungen vor. SPEICHERN Versuchen Sie erneut zu drücken.


1

Für mich geht das.

git remote add origin https://github.com/repo.git
git push origin master

Fügen Sie die Repository-URL zum Ursprung im lokalen Arbeitsverzeichnis hinzu


0

Ein ähnlicher Fehler tritt beim Abrufen der Änderungen vom Ursprung auf. Wenn Sie es in Intellij über die Menüoptionen versuchen, funktioniert das Ziehen möglicherweise nicht direkt.

Gehen Sie zum Terminal und geben Sie diesen Befehl ein. Dies sollte funktionieren: Git Pull Origin Master


0

Ich hatte das gleiche Problem. Als ich meine Konfigurationsdatei überprüfte, bemerkte ich, dass 'fetch = + refs / Heads / : refs / remotes / origin / ' in derselben Zeile wie 'url = Z: /GIT/REPOS/SEL.git' stand, wie gezeigt:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git     fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

Zuerst dachte ich nicht, dass dies wichtig gewesen wäre, aber nachdem ich den Beitrag von Magere gesehen hatte, verschob ich die Linie und das behebt das Problem:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

0

Wenn Sie Ihr Remote-Repository mithilfe des Git-Klons hinzufügen, gehen Sie folgendermaßen vor:

git clone <repo_url> dann

git init

git add * * bedeutet, alle Dateien hinzuzufügen

git commit -m 'your commit'

git remote -vUm zu überprüfen, ob ein Zweig ausgeführt wird oder nicht, wenn nichts angezeigt wird, fügen wir das Repository hinzu oder rufen es ab. " zuerst holen" . Sie müssen laufen git pull origin <branch> oder git pull -r origin <branch>vor einem nächsten Push .

dann

git remote add origin <git url>
 git pull -r origin master
git push -u origin master```

0

Auf diese Weise habe ich den Hauptzweig aktualisiert

$ git remote -v
$ git remote rm origin
$ git commit -m "your commit"
$ git remote add origin https://github.com/user/repo.git
$ git push -f origin master

1
Versuchen Sie, Ihrer Antwort Erklärungen hinzuzufügen, die die Frage ansprechen und dem Leser das Verständnis erleichtern. Derzeit liest es sich nur wie eine Anekdote und würde im allgemeinen Fall nicht einmal funktionieren (z. B. https://github.com/das Website-Stammverzeichnis und ein Git-Repo)
Kache

-3

Manchmal haben Sie kein lokales REF, um diesen Zweig zum Ursprung zurückzuschieben.
Versuchen

git push origin master:master

Dies gibt explizit an, zu welchem ​​Zweig (und von welchem) verschoben werden soll.

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.