git rebase fatale: Besoin d'une seule révision

J'ai une branche d'un référentiel public et j'essaie de mettre à jour ma branche avec les commits actuels du référentiel d'origine:

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

Le {[1] } est à la place de mon nom distant et n'est pas réellement mon nom distant. La documentation sur cette erreur semble être un peu lâche.

127
demandé sur Chris Martin 2011-01-25 22:44:25

6 réponses

Vous devez fournir le nom d'une branche (ou d'un autre identifiant de validation), pas le nom d'un distant à git rebase.

Par exemple:

git rebase origin/master

Pas:

git rebase origin

Note, Bien que {[3] } devrait résoudre le ref origin/HEAD lorsqu'il est utilisé comme un argument où une référence de validation est requise, il semble que tous les référentiels ne gagnent pas une telle référence, donc cela ne peut pas (et dans votre cas ne fonctionne pas). C'est payant d'être explicite.

105
répondu CB Bailey 2011-01-25 23:05:14

Vérifiez que vous avez correctement orthographié le nom de la branche . Je rebasais une branche d'histoire (c'est-à-dire branch_name) et j'ai oublié la partie histoire. (c'est-à-dire story/branch_name) et puis git m'a craché cette erreur qui n'avait pas beaucoup de sens dans ce contexte.

22
répondu ChrisJF 2016-05-25 14:39:23

J'ai rencontré ceci et j'ai réalisé que je n'avais pas récupéré l'amont avant d'essayer de rebaser. Tout ce dont j'avais besoin était de git fetch upstream

17
répondu Mario Olivio Flores 2016-09-07 12:34:28

Le problème est que vous avez ramifié une branche hors de.... lorsque vous essayez de rebase pour. Vous ne pouvez pas rebaser vers une branche qui ne contient pas le commit sur lequel votre branche actuelle a été créée à l'origine.

J'ai eu ceci quand j'ai d'abord rebasé une branche locale X à une branche poussée Y, puis j'ai essayé de rebaser une branche (d'abord créée sur X) à la branche poussée Y.

Résolu pour moi en rebasant à X.

Je n'ai aucun problème à rebaser les branches distantes (potentiellement même pas vérifié), ma branche actuelle découle d'un ancêtre de la branche.

9
répondu Maitreya 2011-03-30 03:31:40

Pour À DISTANCE origin:

$ echo "ref: refs/remotes/origin/master" > .git/refs/remotes/origin/HEAD
0
répondu Jani 2015-03-29 09:10:14

Je tapais par erreur git rebase quand je voulais dire git bisect. Assurez-vous que vous utilisez la commande que vous attendez!

-4
répondu pkamb 2017-06-28 16:26:12