Diese Frage bezieht sich auf mein Problem beim Verständnis von Rebase, Branch and Merge und auf das Problem
Wie können Sie sich auf Ihr Github-Konto festlegen, wenn Sie einen teamMate in Ihrer Remote-Liste haben?
Ich fand heraus, dass andere Menschen das gleiche Problem hatten. Das Problem scheint mit /etc/xinet.d/ zu zusammenhängen.
Problem: Ich kann meine lokale Niederlassung nicht zu meiner Hauptniederlassung in Github verschieben
ich renne
git push origin master
Ich bekomme
fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Die Fehlermeldung deutet darauf hin, dass sich der Zweig 'Ursprung' nicht in meinem lokalen Git-Repository befindet. Auf diese Weise beendet Git die Verbindung zu Github.
Das ist seltsam, da ich den Zweig 'Ursprung' nicht entfernt habe.
Mein Git-Baum ist
dev
* master
ticgit
remotes/Math/Math
remotes/Math/master
remotes/origin/master
remotes/Masi/master
Wie können Sie Ihre lokale Niederlassung nach Github verschieben , während Sie eine teamMate-Niederlassung in Ihrem lokalen Git haben?
Die Antwort von VonC löst das Hauptproblem. Ich habe meinen SSH-Schlüsseln ein Passwort gegeben.
ich renne
$git push github master
Ich bekomme
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Es scheint, dass ich die Passphrase für Git irgendwie geben muss.
Wie können Sie Github dazu bringen, nach Ihrer Passphrase zu fragen, anstatt sich auf den SSH-Schlüssel zu verlassen?
quelle
Antworten:
Was macht
Rückgabe (in Ihrem Git-Repository ausgeführt)?
Origin ist nur eine Standardbenennungskonvention für den Verweis auf ein entferntes Git-Repository.
Wenn es sich nicht um GitHub handelt (sondern um einen Pfad zu Ihrem Teamkollege-Repository, der möglicherweise nicht mehr gültig oder verfügbar ist), fügen Sie einfach einen anderen Ursprung hinzu, wie in diesem Bloggitation-Eintrag
(Ich würde eigentlich den Namen 'github' anstelle von 'origin' oder 'origin2' verwenden)
Überprüfen Sie, ob Ihre gitHub-Identität in Ihrem lokalen Git-Repository korrekt deklariert ist, wie in der GitHub-Hilfe beschrieben . (sowohl user.name als auch github.name - und github.token)
Dann schlägt stonean Blog vor (wie auch Marcio Garcia ):
Aral Balkan fügt hinzu: Erstellen Sie eine Konfigurationsdatei
Sie können auch das Ergebnis von posten
Um weitere Informationen darüber zu erhalten, warum die GitHub-SSH-Verbindung Sie ablehnt.
Überprüfen Sie auch, ob Sie Ihren öffentlichen Schlüssel korrekt eingegeben haben (er muss mit '
==
' enden ).Fügen Sie nicht Ihren privaten, sondern Ihren öffentlichen Schlüssel ein. Ein öffentlicher Schlüssel würde ungefähr so aussehen:
(Hinweis: Haben Sie eine Passphrase für Ihre SSH-Schlüssel verwendet? Ohne eine Passphrase wäre dies einfacher.)
Überprüfen Sie auch die URL, die beim Drücken verwendet wird (
[email protected]/...
, nichtgit://github.com/...
).Überprüfen Sie, ob Sie einen SSH-Agenten haben, mit dem Sie Ihren Schlüssel verwenden und zwischenspeichern können.
Versuche dies:
Wenn dies funktioniert, bedeutet dies, dass Ihr Schlüssel nicht von Ihrem SSH-Client an GitHub gesendet wird.
quelle
Dies ist ein Problem mit Ihrer Fernbedienung. Wenn Sie dies tun
git push origin master
,origin
ist dies die Fernbedienung undmaster
der Zweig, den Sie drücken.Wenn Sie dies tun:
Ich wette, die Liste enthält nicht
origin
. So fügen Sie die Ursprungsfernbedienung erneut hinzu:Oder wenn es existiert, aber falsch formatiert ist:
quelle
VonCs Antwort ist am besten, aber der Teil, der für mich funktioniert hat, war super einfach und ist unter vielen anderen möglichen Antworten begraben. Wenn Sie wie ich sind, sind Sie auf dieses Problem gestoßen, als Sie ein Tutorial "Erste Schritte mit Rails" ausgeführt haben, und Sie haben Ihre öffentlichen / privaten SSH-Schlüssel NICHT eingerichtet.
Wenn ja, versuchen Sie Folgendes:
$>cd ~/.ssh
$>ls
Wenn die Ausgabe von ls
known_hosts
und nichts anderes ist, besuchen Sie: http://help.github.com/mac-key-setup/ und folgen Sie den Anweisungen im Abschnitt "Generieren eines Schlüssels" und weiter unten.Nachdem ich diese Anweisungen ausgeführt hatte, funktionierte mein Befehl "git push origin master".
quelle
git push origin master.
Es war mein erstes Mal, dass ich Git und Rails einrichtete. Hoffentlich hat das anderen Menschen geholfen.Ich habe das gleiche Problem und ich denke, die Firewall blockiert das Git-Protokoll. Am Ende muss ich also auf https: // zurückgreifen, um zu holen und zu pushen. Dies fordert den Benutzer jedoch immer zur Eingabe des Passworts auf ...
Hier ist das Beispiel, was für mich funktioniert (nur um mit denen zu teilen, die git: // protocol nicht verwenden können :)
Wenn das oben genannte funktioniert, können Sie den Ursprung entfernen und durch ersetzen
quelle
~/.netrc
Datei verwenden, um das Passwort für Sie zu speichern, wenn Sie möchten. Es wird von verwendetcurl
, was Git für HTTP (S) -Übertragungen verwendet, falls Sie die Einzelheiten zur Verwendung nachschlagen müssen.~/_netrc
('_
', nicht '.
')Ich denke, das ist ein weiterer Fall, in dem Git-Fehlermeldungen irreführend sind. Wenn ich diesen Fehler gesehen habe, liegt er normalerweise an SSH-Problemen. Haben Sie Ihren öffentlichen SSH-Schlüssel zu Ihrem Github-Konto hinzugefügt?
Bearbeiten: Außerdem bezieht sich der Forumsbeitrag xinet.d auf das Ausführen des git-daemon als Dienst, damit Benutzer von Ihrem System abrufen können. Es ist nicht notwendig, git-daemon auszuführen, um auf github zu pushen.
quelle
Ich habe das gleiche Problem und habe gerade den Inhalt von ~ / .ssh / id_rsa.pub zu meinem Konto in GitHub hinzugefügt. Danach versuchen Sie
git push origin master
es einfach noch einmal , es sollte funktionieren.quelle
Das Wichtigste, an das Sie sich erinnern sollten, ist, dass "Ursprung" nicht der Wert ist, den Sie möglicherweise verwenden müssen. Es hat bei mir funktioniert, als ich "Ursprung" durch den Namen des Repos ersetzt habe.
quelle
Eine Möglichkeit, die in den obigen Antworten nicht angesprochen wird, besteht darin, dass Sie möglicherweise keinen SSH-Zugriff von Ihrer Shell aus haben. Das heißt, Sie befinden sich möglicherweise in einem Netzwerk (einige College-Netzwerke tun dies), in dem der SSH-Dienst blockiert ist. In diesem Fall können Sie nicht nur Github-Dienste, sondern auch alle anderen SSH-Dienste erhalten. Sie können testen, ob dies das Problem ist, indem Sie versuchen, einen anderen SSH-Dienst zu verwenden. Dies war bei mir der Fall.
quelle
Ich hatte dieses Problem und versuchte verschiedene Lösungen, um es zu lösen, einschließlich vieler der oben aufgeführten (Konfigurationsdatei, Debug-SSH usw.). Am Ende habe ich es behoben, indem ich den Schalter -u in den Git-Push aufgenommen habe, gemäß den Github-Anweisungen beim Erstellen eines neuen Repositorys vor Ort - Github New Repository
quelle