git rebase致命:需要进行单个修订


162

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

$ 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>在的地方我的远程名的,实际上并不是我的远程名称。关于此错误的文档似乎有些松散。


2
我由于不相关的原因收到此错误-在Windows命令提示符下使用“ git rebase --interactive c4e9c94 ^”。它提示我“更多?”,并且不管它如何回答提示,它都说“致命:需要一次修订”。但是,当我从bash运行相同的命令时,它运行良好。
理查德·拜尔2012年

附带说明一下,对我来说,除了上游分支以“ remote”列出之外,我还必须获取要作为基础的特定分支。“ git fetch <上游>主服务器”。用“ git fetch <upstream>”仅获取<upstream>仍然会给我这个错误。
甜度

Answers:


132

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

例如:

git rebase origin/master

不:

git rebase origin

注意,尽管当用作需要提交引用的参数时origin应该解析为ref origin/HEAD,但似乎并不是每个存储库都获得这样的引用,因此它可能不会(在您的情况下也不起作用)。它很明显。


2
后者应该实际工作- origin在ref上下文中解释为origin/HEAD。我已经看到存储库最终不知道是什么origin/HEAD...
Cascabel 2011年

1
@Jefromi:恐怕我不相信您,我刚刚git rebase origin在测试存储库(其中originHEAD)上进行了尝试,但遇到了OP的错误。用于rebase的文档没有说远程名称对有效<upstream>
CB Bailey

1
@Charles:好吧,这可能是一个错误吗?git rev-parse origin可以像git rebase origin我的git.git克隆中那样工作(在最新,快速转发和真正的rebase情况下,包括交互式)。
卡斯卡贝尔2011年

@Jefromi:你git describe可以HEAD吗?
CB Bailey

@Charles:最新版本,v1.7.4-rc3!我不是很想做一个二等分的寻找这个人……
Cascabel 2011年

28

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


就是这个 键入featureName当分支实际上命名features/featureName
pkamb

3
更好地寻找简单错别字也是一个好主意。创建分支时,我不小心交换了两个字母,这种错别字真的很难发现。
奥尔加


10

问题是,您是从...分支中分支出来的……您试图将其重新定位到该分支。您不能基于不包含当前分支最初创建的提交的分支。

当我首先将本地分支X重新基于推入的Y时,然后尝试将分支(首先在X上创建)重新基于推入的Y时,就得到了这一点。

通过改用X解决了我。

只要我当前的分支源于该分支的祖先,我就可以毫无问题地迁移到远程分支(可能甚至不会检出)。


3
您可以使用来建立此类分支--onto。一切都源自某个共同的祖先(对于正常存储库),所以这不是问题。foo当我尚未创建要跟踪的分支时,尝试重新建立基础就得到了这个错误origin/foo
cdunn2001

0

对于远程origin

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.