webentwicklung-frage-antwort-db.com.de

git rebase fatal: Benötigte eine einzige Revision

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>

Der <remote> ist anstelle meines Remote-Namens und nicht wirklich mein Remote-Name. Die Dokumentation zu diesem Fehler scheint etwas locker zu sein.

136
jrlmx2

Sie müssen den Namen eines Zweigs (oder einen anderen Commit-Bezeichner) angeben, nicht den Namen eines Remote-Objekts an git rebase.

Z.B.:

git rebase Origin/master

nicht:

git rebase Origin

Obwohl Origin das Argument Origin/HEAD auflösen sollte, wenn es als Argument verwendet wird, bei dem ein Commit-Verweis erforderlich ist, scheint es, dass nicht jedes Repository einen solchen Verweis erhält, sodass es möglicherweise nicht funktioniert (und in Ihrem Fall nicht). Es lohnt sich, explizit zu sein.

110
CB Bailey

Stellen Sie sicher, dass Sie den Zweignamen richtig geschrieben haben. Ich habe einen Story-Zweig umbasiert (d. H. branch_name) und den Story-Teil vergessen. (d. h. story/branch_name) und dann spuckte mir git diesen Fehler aus, der in diesem Zusammenhang wenig Sinn machte.

24
ChrisJF

Ich bin darauf gestoßen und habe gemerkt, dass ich den Upstream nicht geholt habe, bevor ich versuchte, mich zu wehren. Alles was ich brauchte war git fetch upstream 

18

Das Problem ist, dass Sie eine Verzweigung von ... abzweigen, in der Sie versuchen, zu widerlegen. Sie können nicht zu einem Zweig rebasieren, der nicht das Commit enthält, für das Ihr derzeitiger Zweig ursprünglich erstellt wurde.

Ich bekam dies, als ich zuerst einen lokalen Zweig X zu einem geschobenen Y umgestuft hatte, dann versuchte ich, einen Zweig (zuerst auf X erstellt) auf den geschobenen Y zu stützen.

Für mich gelöst durch Umbasierung auf X.

Ich habe kein Problem, auf entfernte Zweige umzusteigen (möglicherweise nicht einmal ausgecheckt), vorausgesetzt, mein derzeitiger Zweig stammt von einem Vorfahren dieses Zweiges.

10
Maitreya

Für entfernte Origin:

$ echo "ref: refs/remotes/Origin/master" > .git/refs/remotes/Origin/HEAD
0
Jani