420 Stimmen

Fatal: Der aktuelle Zweig master hat keinen Upstream-Zweig

Ich versuche, eines meiner Projekte auf GitHub zu veröffentlichen, und erhalte immer diesen Fehler:

peeplesoft@jane3:~/846156 (master) $ git push

fatal: Der aktuelle Branch master hat keinen Upstream-Branch.
Um den aktuellen Branch zu pushen und remote als Upstream zu setzen, benutzen Sie

     git push --set-upstream origin master

Also habe ich es versucht und das bekommen:

peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master

fatal: Authentifizierung fehlgeschlagen

Ein weiterer Thread von stackoverflow schlug vor, dass ich Folgendes versuche, mit enttäuschenden Ergebnissen.

peeplesoft@jane3:~/846156 (master) $ git push -u origin master

fatal: Authentifizierung fehlgeschlagen

Dann habe ich das versucht:

peeplesoft@jane3:~/846156 (master) $ git config remote.origin.push HEAD

peeplesoft@jane3:~/846156 (master) $ git push

fatal: Authentifizierung fehlgeschlagen

Irgendwelche Hinweise?

225voto

VonC Punkte 1117238

Du hast das Push-Problem behoben, aber unabhängig von diesem Push-Problem (das ich in "Warum muss ich explizit einen neuen Branch pushen?": git push -u origin master oder git push -u origin --all erklärt habe) musst du jetzt das Authentifizierungsproblem lösen.

Das hängt von deiner URL ab (ssh wie in 'git@github.com/yourRepo' oder https wie in https://github.com/You/YourRepo)

Für https-URL:

Wenn dein Konto durch die Zwei-Faktor-Authentifizierung geschützt ist, funktioniert dein reguläres Passwort nicht (für https-URL), wie hier erklärt oder hier.

Gleiches Problem, wenn dein Passwort Sonderzeichen enthält (wie in dieser Antwort)

Wenn https nicht funktioniert (weil du keinen sekundären Schlüssel, ein PAT: persönliches Zugriffstoken, generieren möchtest), kannst du zu ssh wechseln, wie ich hier gezeigt habe.


Wie von qwerty in den Kommentaren erwähnt, kannst du automatisch den Branch mit dem gleichen Namen auf dem Remote erstellen mit:

git push -u origin head 

Warum?

  • HEAD (siehe deine .git\HEAD-Datei) hat die Refspec des momentan ausgecheckten Branchs (zum Beispiel: ref: refs/heads/master)
  • Die Standard-Push-Policy ist einfach

Da die für diesen Push verwendete Refspec head: (kein Ziel) ist, bedeutet ein fehlendes :, dass derselbe Verweis wie der aktualisiert wird (head, der ein Branch ist).

Das funktioniert jedoch nicht, wenn HEAD abgehängt ist.


Oder du kannst Git 2.37 (Q3 2022) und die neue globale Option push.autoSetupRemote verwenden:

git config --global push.autoSetupRemote true
git push

146voto

TantrajJa Punkte 1877

Außerdem können Sie den folgenden Befehl verwenden:

git push -u origin master

Dies erstellt (-u) einen weiteren Branch in Ihrem Remote-Repo. Sobald die Authentifizierung über SSH abgeschlossen ist.

95voto

DariusV Punkte 2305

Wenn Sie die Aktion git push definieren, sollte sie ausgeführt werden, wenn keine Refspec auf der Befehlszeile angegeben ist, keine Refspec im Remote konfiguriert ist und keine Refspec durch eine der auf der Befehlszeile angegebenen Optionen impliziert wird.

Einfach machen:

git config --global push.default current

dann

git push

52voto

TheEye Punkte 9019

Anscheinend erhalten Sie auch diese Fehlermeldung, wenn Sie den --all Parameter vergessen, wenn Sie zum ersten Mal pushen. Ich schrieb

git push -u origin

das gab diesen Fehler, es hätte sein sollen

git push -u origin --all

Ach, wie sehr ich diese Copy-Paste-Fehler liebe ...

24voto

hoochanlon Punkte 281

Bitte versuchen Sie dieses Szenario

git push -f --set-upstream origin master

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X