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 <remote>
est à la place de mon nom de télécommande et n'est pas réellement mon nom de télécommande. La documentation sur cette erreur semble être un peu lâche.
Vous devez fournir le nom d'une branche (ou un autre identifiant de validation), et non le nom d'une personne distante à git rebase
.
Par exemple.:
git rebase Origin/master
ne pas:
git rebase Origin
Remarque, bien que Origin
devrait résoudre la référence Origin/HEAD
lorsqu’il est utilisé comme argument dans lequel une référence de validation est requise, il semble que tous les référentiels n’obtiennent pas une telle référence, de sorte que cela peut ne pas fonctionner (et dans votre cas ne fonctionne pas). C'est payant d'être explicite.
Vérifiez que vous avez orthographié le nom de la branche correctement . Je rebasais une branche d'histoire (c'est-à-dire branch_name
) et j'ai oublié la partie histoire. (c'est-à-dire story/branch_name
) puis git crache cette erreur qui n'a pas beaucoup de sens dans ce contexte.
Je me suis heurté à cela et j'ai réalisé que je n'avais pas récupéré l'amont avant d'essayer de me rebaser. Tout ce dont j'avais besoin était de git fetch upstream
Le problème est que vous avez ouvert une branche hors de ... où vous essayez de vous baser sur. Vous ne pouvez pas redéfinir la base sur une branche qui ne contient pas le commit sur lequel votre branche actuelle a été créée à l'origine.
Je l’ai eu quand j’ai rebaptisé une branche locale X en un Y poussé, puis que j’ai essayé de rebaser une branche (créée d’abord sur X) en un Y poussé.
Résolu pour moi en rebasant sur X.
Je n'ai pas de problème à modifier les bases de branches distantes (potentiellement même pas extraites), à condition que ma branche actuelle provienne d'un ancêtre de cette branche.
Pour Origin
à distance:
$ echo "ref: refs/remotes/Origin/master" > .git/refs/remotes/Origin/HEAD