Ich bin neu bei Git / GitHub und bin auf ein Problem gestoßen. Ich habe ein Testprojekt erstellt und es dem lokalen Repository hinzugefügt. Jetzt versuche ich, Dateien / Projekte zum Remote-Repository hinzuzufügen.
Folgendes habe ich getan (und das hat funktioniert) -
git remote add origin git://github.com/my_user_name/my_repo.git
Wenn ich nun versuche, das Repository mit dem folgenden Befehl auf GitHub zu übertragen, wird der folgende Fehler angezeigt:
git push origin master
Error -
fatal: remote error:
You can't push to git://github.com/my_user_name/my_repo.git
Use [email protected]:my_user_name/my_repo.git
Antworten:
GitHub unterstützt kein Pushing über das Git-Protokoll, was durch die Verwendung der beginnenden URL angezeigt wird
git://
. Wie in der Fehlermeldung angegeben, sollten Sie beim Pushen entweder die SSH-URL[email protected]:my_user_name/my_repo.git
oder das "Smart HTTP" -Protokoll verwenden, indem Sie diehttps://
URL verwenden, die GitHub Ihnen für Ihr Repository anzeigt.(Update: Zu meiner Überraschung dachten einige Leute anscheinend, dass ich damit vorschlug, dass "https" "intelligentes HTTP" bedeutet, was ich nicht war. Git hatte früher ein "dummes HTTP" -Protokoll, das vorher kein Pushing erlaubte Das von GitHub verwendete "intelligente HTTP" wurde eingeführt - entweder über
http
oder überhttps
. Die Unterschiede zwischen den von Git verwendeten Übertragungsprotokollen werden im folgenden Link erläutert.)Wenn Sie die Ursprungs-URL ändern möchten, können Sie einfach Folgendes tun:
oder
Weitere Informationen finden Sie unter 10.6 Git Internals - Transfer Protocols .
quelle
Verwenden Sie die Antwort von Mark Longair , stellen Sie jedoch sicher, dass Sie den HTTPS-Link zum Repository verwenden:
Sie können dann verwenden
git push origin master
.quelle
git push
funktioniert einfach auch tippen .Die Lösung von Mark Longair
git remote set-url...
ist ziemlich klar. Sie können das gleiche Verhalten auch erzielen, indem Sie diesen Abschnitt der .git / config-Datei direkt bearbeiten:Vor:
nach dem:
(Und umgekehrt
git remote set-url...
bewirkt der Aufruf die obige Änderung.)quelle
Es gibt eine einfache Lösung für jemanden, der neu in diesem Bereich ist:
Bearbeiten Sie die Konfigurationsdatei in Ihrem lokalen .git-Verzeichnis (
config
). Wechseln Siegit:
zuhttps:
unten.quelle
Ich hatte dieses Problem nach dem Upgrade des Git-Clients und plötzlich konnte mein Repository nicht mehr pushen.
Ich stellte fest, dass eine alte Fernbedienung den falschen Wert von hatte
url
, obwohl meine derzeit aktive Fernbedienung den gleichen Wert hatteurl
und einwandfrei funktionierte.Aber es gab auch den
pushurl
Parameter, also funktionierte das Hinzufügen für die alte Fernbedienung für mich:Vor:
HINWEIS: Dieser Teil der Datei "config" wurde lange Zeit nicht verwendet, aber der neue Client hat sich über die falsche URL beschwert:
Also habe ich den
pushurl
Parameter zur alten Fernbedienung hinzugefügt :quelle
Dieser Fehler tritt auf, wenn Sie ein Repo mit einem Aufruf wie folgt klonen:
Dies macht Sie im Wesentlichen zu einem reinen Pull-Benutzer, der keine Änderungen vornehmen kann.
Ich habe dies behoben, indem ich die
.git/config
Datei meines Repos geöffnet und die Zeile geändert habe :zu:
Dieses
ssh+git
Protokoll mit demgit
Benutzer ist der von Github bevorzugte Authentifizierungsmechanismus.Die anderen hier erwähnten Antworten funktionieren technisch, aber sie scheinen alle ssh zu umgehen, sodass Sie manuell ein Passwort eingeben müssen, das Sie wahrscheinlich nicht möchten.
quelle
Wenn Sie zu http://github.com/my_user_name/my_repo gehen, wird ein Textfeld angezeigt, in dem Sie den Git-Pfad zu Ihrem Repository auswählen können. Du wirst das benutzen wollen!
quelle
Ich habe meinen Pubkey zu github.com hinzugefügt und dies war erfolgreich:
Aber ich habe den Fehler "Sie können nicht pushen" erhalten, nachdem ich dies falsch gemacht habe:
Anstatt zu tun, was ich hätte tun sollen:
quelle
So setzen Sie
https
global stattgit://
:quelle
Die folgenden cmnds beheben das Problem.
quelle
Der schnellste Weg, darüber hinwegzukommen, besteht darin, ihn
origin
durch den Vorschlag zu ersetzen, den er gibt.git push origin master
Verwenden Sie stattdessen :quelle