git rebase fatal: нужна одна ревизия

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

$ 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 ответов


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

например:

git rebase origin/master

нет:

git rebase origin

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


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


я столкнулся с этим и понял, что я не принес вверх по течению, прежде чем пытаться перебазировать. Все, что мне было нужно, - это ... --0-->


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

Я получил это, когда я впервые приведено местное отделение X в толкнул одного г, затем попытался перебазировании филиала (Первый создан на Х) на один толкнул Ю.

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

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


на пульт origin:

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

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