Ich habe einen Zweig eines öffentlichen Repositorys und versuche, meinen Zweig mit den aktuellen Commits aus dem ursprünglichen Repository zu aktualisieren:
$ git fetch <remote>
remote: Counting objects: 24, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 20 (delta 12), reused 0 (delta 0)
Unpacking objects: 100% (20/20), done.
From git://github.com/path_to/repo
9b70165..22127d0 master -> $/master
$ git rebase <remote>
fatal: Needed a single revision
invalid upstream <remote>
Das <remote>
ist anstelle meines Remote-Namens und ist eigentlich nicht mein Remote-Name. Die Dokumentation zu diesem Fehler scheint etwas locker zu sein.
Antworten:
Sie müssen den Namen eines Zweigs (oder eine andere Festschreibungskennung) angeben, nicht den Namen einer Remote an
git rebase
.Z.B:
nicht:
Beachten Sie, dass, obwohl es als Argument verwendet werden
origin
sollte,origin/HEAD
wenn eine Festschreibungsreferenz erforderlich ist, es in den Verweis aufgelöst werden sollte, es scheint, dass nicht jedes Repository eine solche Referenz erhält, so dass es möglicherweise nicht funktioniert (und in Ihrem Fall nicht funktioniert). Es lohnt sich, explizit zu sein.quelle
origin
im ref-Kontext wird interpretiert alsorigin/HEAD
. Ich habe gesehen, dass Repositories am Ende nicht wissen, was esorigin/HEAD
ist ...git rebase origin
ein Test-Repository ausprobiert (woorigin
hat einHEAD
) und ich bekomme den OP-Fehler. Die Dokumentation für Rebase besagt nicht, dass ein Remote-Name für das gültig ist<upstream>
.git rev-parse origin
funktioniert wiegit rebase origin
in meinem git.git-Klon (in einem aktuellen, schnellen und echten Rebase-Fall, einschließlich interaktiv).git describe
deinHEAD
?Überprüfen Sie, ob Sie den Filialnamen richtig geschrieben haben . Ich habe einen Story-Zweig (dh
branch_name
) neu aufgebaut und den Story-Teil vergessen. (dhstory/branch_name
) und dann spuckte git diesen Fehler auf mich, der in diesem Zusammenhang nicht viel Sinn machte.quelle
featureName
wenn der Zweig tatsächlich benannt istfeatures/featureName
Ich bin darauf gestoßen und habe festgestellt, dass ich den Upstream nicht abgerufen habe, bevor ich versucht habe, ihn wieder aufzubauen. Alles was ich brauchte war zu
git fetch upstream
quelle
Das Problem ist, dass Sie von einem Zweig von ... abgezweigt haben, zu dem Sie versuchen, eine Basis zu erstellen. Sie können nicht auf einen Zweig zurückgreifen, der nicht das Commit enthält, für das Ihr aktueller Zweig ursprünglich erstellt wurde.
Ich habe dies erhalten, als ich zum ersten Mal einen lokalen Zweig X auf einen Push-Y umgestellt habe und dann versucht habe, einen Zweig (der zuerst auf X erstellt wurde) auf den Push-Y umzustellen.
Für mich durch Umbasierung auf X gelöst.
Ich habe kein Problem damit, auf entfernte Zweige umzusteigen (möglicherweise nicht einmal ausgecheckt), vorausgesetzt, mein aktueller Zweig stammt von einem Vorfahren dieses Zweigs.
quelle
--onto
. Alles stammt von einem gemeinsamen Vorfahren ab (für normale Repositories), das ist also nicht das Problem. Ich habe diesen Fehler erhalten, weilfoo
ich versucht habe, eine Basis zu erstellen, als ich den zu verfolgenden Zweig noch nicht erstellt hatteorigin/foo
.Für Fernbedienung
origin
:quelle
git submodule deinit --all -f
arbeitete für mich.quelle