J'ai une branche d'un référentiel public et j'essaye 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 <remote>
est à la place de mon nom distant et n'est pas réellement mon nom distant. La documentation sur cette erreur semble un peu lâche.
Réponses:
Vous devez fournir le nom d'une branche (ou un autre identifiant de validation), et non le nom d'un distant vers
git rebase
.Par exemple:
ne pas:
Notez que, bien que cela
origin
devrait se résoudre à la référenceorigin/HEAD
lorsqu'il est utilisé comme argument où une référence de validation est requise, il semble que tous les référentiels ne reçoivent pas une telle référence, donc cela peut ne pas (et dans votre cas ne fonctionne pas). Il vaut la peine d'être explicite.la source
origin
dans le contexte ref est interprété commeorigin/HEAD
. J'ai vu des référentiels finir par ne pas savoir ce queorigin/HEAD
c'est, cependant ...git rebase origin
un dépôt de test (oùorigin
a unHEAD
) et j'obtiens l'erreur de l'OP. La documentation de rebase ne dit pas qu'un nom distant est valide pour le<upstream>
.git rev-parse origin
fonctionne, commegit rebase origin
dans mon clone git.git (dans un cas à jour, à avance rapide et à vrai rebase, y compris interactif).git describe
votreHEAD
?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. (iestory/branch_name
) puis git m'a craché cette erreur qui n'avait pas beaucoup de sens dans ce contexte.la source
featureName
lorsque la branche est réellement nomméefeatures/featureName
Je suis tombé sur 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
la source
Le problème est que vous avez bifurqué une branche de ... vers laquelle vous essayez de rebaser. Vous ne pouvez pas rebaser sur une branche qui ne contient pas le commit sur lequel votre branche actuelle a été créée à l'origine.
J'ai eu cela lorsque j'ai rebasé pour la première fois une branche locale X en un Y poussé, puis j'ai essayé de rebaser une branche (créée en premier sur X) en une branche poussée Y.
Résolu pour moi en rebasant en X.
Je n'ai aucun problème à rebaser vers des branches distantes (potentiellement même pas extraites), à condition que ma branche actuelle provienne d'un ancêtre de cette branche.
la source
--onto
. Tout descend d' un ancêtre commun (pour les dépôts normaux), donc ce n'est pas le problème. J'ai eu cette erreur en essayant de rebaserfoo
alors que je n'avais pas encore créé la branche à suivreorigin/foo
.Pour la télécommande
origin
:la source
git submodule deinit --all -f
travaillé pour moi.la source