git rebase fatal: Necesitaba una única revisión


Tengo una rama de un repositorio público y estoy tratando de actualizar mi rama con las confirmaciones actuales del repositorio original:

$ 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>

El <remote> está en lugar de mi nombre remoto y en realidad no es mi nombre remoto. La documentación sobre este error parece ser un poco floja.

Author: Chris Martin, 2011-01-25

6 answers

Necesita proporcionar el nombre de una rama (u otro identificador de confirmación), no el nombre de un remoto a git rebase.

Ej:

git rebase origin/master

No:

git rebase origin

Tenga en cuenta, aunque origin debe resolver a la ref origin/HEAD cuando se utiliza como un argumento donde se requiere una referencia de confirmación, parece que no todos los repositorios obtienen dicha referencia, por lo que puede que no funcione (y en su caso no funciona). Vale la pena ser explícito.

 105
Author: CB Bailey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-25 23:05:14

Compruebe que deletreó el nombre de la rama correctamente. Estaba reorganizando una rama de la historia (es decir, branch_name) y olvidé la parte de la historia. (es decir, story/branch_name) y luego git escupió este error en mí que no tenía mucho sentido en este contexto.

 22
Author: ChrisJF,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-25 14:39:23

Me encontré con esto y me di cuenta de que no busqué el upstream antes de intentar rebase. Todo lo que necesitaba era git fetch upstream

 17
Author: Mario Olivio Flores,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-07 12:34:28

El problema es que se ramificó de una rama de.... donde usted está tratando de rebase a. No puedes cambiar la base a una rama que no contenga la confirmación en la que se creó originalmente tu rama actual.

Obtuve esto cuando por primera vez rebasé una rama local X a una empujada Y, luego traté de rebase una rama (creada por primera vez en X) a la empujada Y.

Resuelto para mí al cambiar la base a X.

No tengo ningún problema en cambiar la base a ramas remotas (potencialmente ni siquiera se ha comprobado), siempre que mi rama actual provenga de un antepasado de esa rama.

 9
Author: Maitreya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-30 03:31:40

Para el control remoto origin:

$ echo "ref: refs/remotes/origin/master" > .git/refs/remotes/origin/HEAD
 0
Author: Jani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-29 09:10:14

Estaba escribiendo por error git rebase cuando quise decir git bisect. Asegúrese de que está utilizando el comando que está esperando!

 -4
Author: pkamb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-28 16:26:12