Fehler beim „git push“ auf Github
Frage
Ich habe ein öffentliches Repository github.com mit 2 Filialen: master
und test
Ich habe ein neues Verzeichnis lokal und tue:
[ ] git clone git@github.com:{username}/{projectname}.git
Dann habe ich eine Niederlassung namens my_test
mit
[ ] git branch my_test
und schalten es.
[ ] git checkout my_test
Dann fusionierte ich es von meinem test
Zweig meiner öffentlichen Repository mit
[ ] git merge origin/test
und es führte zu einem schnellen Vorlauf.
Ich habe einige Änderungen und versah.
Dann habe ich versucht, den lokalen my_test
Zweig den Öffentlichkeit test
Zweig bei Github zu schieben mit
[ ] git push git@github.com:{username}/{projectname}.git test
, aber ich habe diesen Fehler:
error: src refspec test does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git
Was mache ich falsch?
Lösung
Vielleicht versuchen:
git push git@github.com:{username}/{projectname}.git HEAD:test
Das Format des letzten Parameters auf dieser Befehlszeile ein Refspec , die eine Quelle ref durch einen Doppelpunkt und dann dem Ziel ref gefolgt ist. Sie können auch Ihre lokalen Zweignamen (my_test
) anstelle von HEAD verwenden, um sicher zu sein, Sie den richtigen Zweig sind drücken.
Die Dokumentation für git push
hat mehr Einzelheiten zu diesem Parameter.
Andere Tipps
Auch brauchen Sie nicht jedes Mal, wenn Sie schieben wollen die ganze URL tippen. Wenn Sie den Klon lief, gespeichert git diese URL als ‚Ursprung‘, das ist, warum Sie so etwas wie ‚merge origin / test‘ laufen kann - es bedeutet, den ‚Test‘ Zweig auf dem ‚Ursprung‘ Server. So ist der einfachste Weg, in diesem Fall auf den Server zu schieben wäre:
git push origin my_test:test
Das wird schieben Sie Ihre lokale ‚my_test‘ Abzweigung zum ‚Test‘ Zweig auf dem ‚Ursprung‘ Server. Wenn Sie Ihre lokale Niederlassung der gleiche wie der Zweig auf dem Server genannt hatte, dann der Darm ist nicht neccesary, können Sie einfach tun:
git push origin test
Dieser Fehler kommt auch auf, wenn Sie in ein neues Repository zu schieben versuchen, ohne vorher begangen etwas zu haben. Versuchen Sie:
git add -A
git commit -am 'Initial commit'
Und dann versuchen, Ihre Push wieder.
Ich denke, hier müssen Sie Zweig-Tracking einrichten. Bitte führen Sie die folgenden ermöglichen Tracking
git branch --track my_test origin/my_test
Um zu testen
git push -u origin my_test
git pull origin my_test
Sie müssen sicherstellen, dass Ihr lokales Repository den gleichen Namen wie die Remote-Repository haben Sie zu drücken versuchen.
Als erstes ändern Repository git branch -m "test" verwendet, so dass "my_test" wäre "test". Zweitens nur git push origin Test