Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git rebase致命:需要一次修订_Git_Github_Rebase - Fatal编程技术网

git rebase致命:需要一次修订

git rebase致命:需要一次修订,git,github,rebase,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://

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

$ 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>
$git fetch
远程:计数对象:24,完成。
远程:压缩对象:100%(20/20),完成。
远程:总计20(增量12),重复使用0(增量0)
拆包对象:100%(20/20),完成。
从…起git://github.com/path_to/repo
9b70165..22127d0主机->美元/主机
$git rebase
致命:需要一次修订
无效上游

代替了我的远程名称,实际上不是我的远程名称。关于此错误的文档似乎有点松散。

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

例如:

不是:


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

问题是你把……的一个分支分支分支出来了。。。。您正在尝试重新设置基础的位置。不能重新设置到不包含最初创建当前分支的提交的分支的基础

当我第一次将本地分支X重设为推送分支Y,然后尝试将分支(首先在X上创建)重设为推送分支Y时,我得到了这个结果

通过重定为X为我解决了这个问题


如果我的当前分支来自该分支的祖先,则我可以重新设置到远程分支(可能甚至没有签出)。请检查分支名称的拼写是否正确。我对一个故事分支(即
分支\u name
)进行了重定,但忘记了故事部分。(例如,
story/branch\u name
)然后git向我吐出了这个错误,在这种情况下没有多大意义。

当您的存储库没有为远程服务器设置默认分支时,就会发生错误。您可以使用
git remote set head
命令修改默认分支,从而能够使用远程名称而不是该远程中的指定分支

要查询遥控器(在本例中为
原点
)的
头部
(通常为
主机
),并将其设置为默认分支:

$ git remote set-head origin --auto
如果要在本地使用不同的默认远程分支,可以指定该分支:

$ git remote set-head origin new-default
设置默认分支后,您可以在
git-rebase
中仅使用远程名称和任何其他命令,而不是显式的
/

在幕后,此命令更新
.git/refs/remotes/origin/HEAD
中的引用

$ cat .git/refs/remotes/origin/HEAD 
ref: refs/remotes/origin/master

有关更多详细信息,请参阅。

我遇到了这个问题,并意识到在尝试重新设置基础之前,我没有获取上游。我所需要的就是
git获取上游

git子模块deinit--All-f

为我工作。

$git rebase upstream/master

致命:需要一次修订

上游USStream/master无效**


因此,我尝试了$git-rebase-remotes/upstream/master,它对我有效。

后者实际上应该有效-
origin
在ref上下文中被解释为
origin/HEAD
。我看到存储库最终不知道
origin/HEAD
是什么,不过…@Jefromi:恐怕我不相信你,我刚刚在测试存储库上尝试了
git-rebase-origin
(其中
origin
HEAD
),我得到了OP的错误。rebase的文档没有说远程名称对于
是有效的@Charles:嗯,这可能是一个bug
git rev parse origin
和我的git.git克隆中的
git rebase origin
一样有效(在最新、快进、真实的rebase情况下,包括交互式)。@Jefromi:你能
git描述一下你的
头部吗?@Charles:最新,v1.7.4-rc3!我不太想做二等分来寻找这个……你可以用
--on
重设到这样一个分支的基础。所有东西都是从某个共同的祖先(对于普通的存储库),所以这不是问题所在。当我还没有创建跟踪
origin/foo
的分支时,我试图在
foo
上重新设置基址,因此出现此错误。我之所以出现此错误,是因为一个不相关的原因—在Windows命令提示符下使用“git-rebase--interactive c4e9c94^”。它提示我“更多?”,不管它如何回答提示,它都说“致命:需要一次修改”。但是当我从bash运行相同的命令时,它工作得很好。顺便说一下,对于我来说,除了上游分支用“remote”列出之外,我还必须获取我想要重新设置基础的特定分支。“git抓取主机”。仅使用“git fetch”获取仍然会给我这个错误。正是这个。在分支实际命名时键入
featureName
,这也是更彻底地查找简单键入的好方法。我在创建分支时不小心交换了两个字母,这个打字错误真的很难发现。@VladimirShefer重写了整个答案,使用
git remote set head
,而不是直接与
.git/refs/remotes/origin/head
混淆。此外,我认为这比公认的答案更好地回答了原始问题,这只是解决根本原因的一个办法。谢谢你的回答。现在好多了!我已经删除了我的反对票。
$ git remote set-head origin new-default
$ cat .git/refs/remotes/origin/HEAD 
ref: refs/remotes/origin/master