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

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

例如:

 git rebase origin/master 

不:

 git rebase origin 

请注意,尽pipe当需要提交引用时, origin应该parsing为ref origin/HEAD ,但是并不是每个存储库都会获得这样的引用,所以它可能不会(并且在你的情况下不能)工作。 这是明确的支付。

检查你拼写正确的分行名称 。 我正在重新设置故事分支(即branch_name ),并忘记了故事部分。 (即story/branch_name ),然后git吐在我这个错误,在这方面没有多大意义。

我遇到这个,意识到我没有取得上游之前,试图rebase。 我所需要的只是git fetch upstream

问题是你从一个分支中分支出来,你试图重新分配。 您不能redirect到不包含当前分支最初创build的提交的分支。

当我第一次将一个本地分支X重新命名为Y时,我得到了这个,然后尝试将一个分支(首先在X上创build)分配给被推入的分支Y.

通过重新绑定到X解决了我。

如果我当前的分支源自该分支的祖先,我没有任何问题redirect到远程分支(可能甚至没有检出)。

对于远程origin

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

当我的意思是git bisect时,我错误地input了git rebase 。 确保你正在使用你期望的命令!