我不确定为什么这不起作用。当我git branch -a
时,这就是我所看到的:
我正试图从在线GitHub存储库上的DownloadManager中取出。我试过了
fatal: Couldn't find remote ref downloadmanager. Unexpected end of commands stream
'fatal couldn't find remote ref remotes/origin/DownloadManager. Unexpected end of commands stream
有什么我想念的吗?在Xcode中,当我尝试连接到存储库时,没有任何东西出现。我过去曾能够推动它。但是,在我拉出最近的变化之前,我无法再次推动。
答案 0 :(得分:45)
小心 - 本地和远程分支之间有大小写混合!
假设您现在位于本地分支 downloadmanager (git checkout downloadmanager
)
您有下一个选择:
每次在 pull / push 命令中指定远程分支(区分大小写):
git pull origin DownloadManager
或
git pull origin downloadmanager:DownloadManager
在下次推送时指定跟踪分支:
git push -u origin DownloadManager
( -u 是 - set-upstream 的缩写形式)
这将自动在配置中持续 downloadmanager:DownloadManager 链接(结果与下一步相同)。
在git config默认远程跟踪分支中设置:
git branch -u downloadmanager origin/DownloadManager
(注意,因为git 1.8 for branch 命令 -u 是 - set-upstream-to 的缩写形式,这是与已弃用的 - set-upstream )
略有不同或手动编辑配置(我更喜欢这种方式):
git config --local -e
- >这将打开编辑器。在下面添加块(猜测,在“主”块之后):
[branch "downloadmanager"]
remote = origin
merge = refs/heads/DownloadManager
在完成上述任何步骤之后,您可以轻松使用:
git pull
如果你使用TortoiseGit: 右键单击repo - > TortoiseGit - >设置 - > Git - >编辑本地.git / config
答案 1 :(得分:6)
Git中的分支名称区分大小写。要查看Git'所看到的分支机构的名称。 (包括正确的套管),使用:
git branch -vv
...现在您可以看到要使用的正确分支名称,请执行以下操作:
git pull origin BranchName
其中' BranchName'是你的分支的名称。确保您正确匹配案例
所以在OP(原始海报' s)案例中,命令将是:
git pull origin DownloadManager
答案 2 :(得分:2)
发生此错误是因为本地存储库无法在第一时间识别远程分支。所以你需要先做。可以使用以下命令完成:
git remote add origin 'url_of_your_github_project'
git push -u origin master
答案 3 :(得分:2)
如果远程分支被删除(或重命名),那么在尝试获取那个 old-branch 时可能会遇到这样的错误:
$ git fetch --prune --all
Fetching origin
fatal: couldn't find remote ref refs/heads/old-branch
error: Could not fetch origin
检查您的本地 git 配置是否仍然引用 old-branch:
$ git config --get-all remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*
+refs/heads/old-branch:refs/remotes/origin/old-branch
+refs/heads/master:refs/remotes/origin/master
删除旧的 refs 条目,可以解决 fetch 问题:
$ git config --unset-all remote.origin.fetch
$ git fetch --prune --all
Fetching origin
...
* branch HEAD -> FETCH_HEAD
答案 4 :(得分:1)
这是因为你的远程分支名称是“DownloadManager”,我想当你结帐你的分支时,你给这个分支一个新名称“downloadmanager”。
但这只是你的本地名称,而不是远程引用名称。
答案 5 :(得分:1)
您需要设置本地分支以跟踪远程分支,如果它们具有不同的大小写,它将不会自动执行。
尝试:
git branch --set-upstream downloadmanager origin/DownloadManager
git pull
答案 6 :(得分:1)
对我来说,这是因为我试图拉出一个已经从Github删除的分支。
答案 7 :(得分:1)
如果这些答案都不起作用,那么我将首先在您的<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<div class="uc_breadcrumb_block">
<ul class="breadcumb">
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
<li>item5</li>
<li>item6</li>
</ul>
</div>
</div>
文件中查找对引起问题的分支的引用,然后将其删除。
答案 8 :(得分:0)
检查您的仓库中的分支。也许有人删除它。
答案 9 :(得分:0)
我遇到了同样的问题,因为 GitHub 将默认分支名称从 master 更改为 main
所以
Git pull origin master
对我不起作用。
试试这个
Git pull origin main
如果问题是由于分支名称冲突引起的,这将拯救您。
答案 10 :(得分:0)
对我来说它失败了,因为我的远程分支丢失了(它在之前的合并运行中被删除了。)
答案 11 :(得分:-1)
重新启动后重新打开VSCode的最后一个副本时遇到了这个问题。上面的修复不起作用,但是当我通过资源管理器关闭并重新打开VSCode时,它起作用了。这是我执行的步骤:
//received fatal error
git remote remove origin
git init
git remote add origin git@github:<yoursite>/<your project>.git
// still received an err
//restarted VSCode and folder via IE
//updated one char and resaved the index.html
git add .
git commit -m "blah"
git push origin master
答案 12 :(得分:-2)
在我自己的情况下,我只是将“主”更改为“主”,并且能够从远程存储库中提取。