我有一个公共存储库的分支,我正在尝试使用原始存储库中的当前提交更新我的分支:
$ 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>
取代了我的远程名称,实际上并不是我的远程名称。关于这个错误的文档似乎有点松散。
答案 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
。确保您使用的是您期望的命令!