git rebase致命:需要单一版本

时间:2011-01-25 19:44:26

标签: git github rebase

我有一个公共存储库的分支,我正在尝试使用原始存储库中的当前提交更新我的分支:

$ 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>取代了我的远程名称,实际上并不是我的远程名称。关于这个错误的文档似乎有点松散。

8 个答案:

答案 0 :(得分:115)

您需要提供分支(或其他提交标识符)的名称,而不是git rebase的远程名称。

E.g:

git rebase origin/master

git rebase origin

注意,虽然origin在用作需要提交引用的参数时应解析为ref origin/HEAD,但似乎并非每个存储库都获得这样的引用,因此它可能不会(和在你的情况下不工作。明确是值得的。

答案 1 :(得分:26)

检查正确拼写分支名称。我正在改变一个故事分支(即branch_name)并忘记故事部分。 (即story/branch_name)然后git向我吐出这个错误,在这种情况下没有多大意义。

答案 2 :(得分:20)

我遇到了这个,并意识到我在尝试改变之前没有取上游。我只需要git fetch upstream

答案 3 :(得分:10)

问题是你分支了....你试图改变的地方。您不能重新绑定到不包含最初创建当前分支的提交的分支。

当我第一次将一个本地分支X重新绑定到一个Y时,我得到了这个,然后尝试将一个分支(首先在X上创建)重新绑定到推送的Y.

通过重新定位为X解决了我。

如果我当前的分支来自该分支的祖先,我对于远程分支(可能甚至没有检出)没有问题。

答案 4 :(得分:0)

对于远程origin

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

答案 5 :(得分:0)

git submodule deinit --all -f 为我工作。

答案 6 :(得分:0)

$ git rebase 上游/主

致命:需要一次修改

上游 usptream/master 无效**

所以我尝试了 $ git rebase remotes/upstream/master 并且它对我有用。

答案 7 :(得分:-4)

当我的意思是session.invalidate(); 时,我错误地输入了git rebase。确保您使用的是您期望的命令!