git rebase fatal: требуется одна ревизия - PullRequest
147 голосов
/ 25 января 2011

У меня есть ветка публичного репозитория, и я пытаюсь обновить свою ветку текущими коммитами из исходного репозитория:

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

<remote> вместо моего удаленного имени и фактически не является моим удаленным именем. Документация по этой ошибке выглядит немного нестабильной.

Ответы [ 6 ]

119 голосов
/ 25 января 2011

Необходимо указать имя ветви (или другой идентификатор фиксации), а не имя удаленного, для git rebase.

Например:

git rebase origin/master

not:

git rebase origin

Обратите внимание, что хотя origin должно разрешаться в ref origin/HEAD при использовании в качестве аргумента, когда требуется ссылка на коммит, кажется, что не каждый репозиторий получает такую ​​ссылку, поэтому он может неи в вашем случае не работает).Платно быть явным.

26 голосов
/ 17 декабря 2014

Убедитесь, что вы правильно написали название ветви .Я перебирал ветку истории (то есть branch_name) и забыл часть истории.(то есть story/branch_name), а затем git плюнул мне в эту ошибку, которая не имела особого смысла в этом контексте.

21 голосов
/ 07 сентября 2016

Я столкнулся с этим и понял, что я не получил восходящий поток, прежде чем пытаться сделать ребаз.Все что мне нужно было git fetch upstream

10 голосов
/ 30 марта 2011

Проблема в том, что вы ответвлялись от ветки .... в которую вы пытаетесь сделать ребазинг.Вы не можете перебазировать в ветку, которая не содержит коммит, на котором изначально была создана ваша текущая ветвь.

Я получил это, когда впервые переместил локальную ветвь X в толкаемую Y, а затем попытался перебазироватьветвь (сначала созданная в X) к нажатой Y.

Решена для меня путем перебазирования в X.

У меня нет проблем с перебазированием в удаленные ветки (потенциально даже не извлеченные), при условиимоя текущая ветвь происходит от предка этой ветви.

0 голосов
/ 28 июня 2017

Я по ошибке набрал git rebase, когда имел в виду git bisect. Убедитесь, что вы используете ожидаемую команду!

0 голосов
/ 29 марта 2015

Для удаленного origin:

$ echo "ref: refs/remotes/origin/master" > .git/refs/remotes/origin/HEAD
...