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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top