当我尝试执行git fetch命令获取远程分支时,遇到以下错误:
错误:参考 refs/origin/remotes/my-branch 处于some-hash,但期望是another-hash 来自 github.com:my-repository ! some-hash my-branch -> origin/my-branch (无法更新本地引用)
我不知道出了什么问题。有什么解释吗?
有人创建了另一个同名但大小写不同的分支。
Windows版Git不区分大小写。因此,事情变得很糟糕!Git无法区分它们,误将每个分支的哈希值弄混。
直接从根源上解决问题。删除错误的远程分支,一切就像以前一样顺畅了。
对于其他谷歌员工来说,如果你们到这儿了:这也是另一种不那么激进的方法:
导航到 .git\refs\remotes\origin
目录 - 删除 master 文件,
然后再执行 git pull
命令,它就能成功同步了。
.git\refs\remote\origin
文件夹内的所有文件并执行git fetch
。 - Nambi_0915dev/a_random_branch_name
与 Dev/completely_different_branch_name
冲突了。我很困惑,因为这两个分支根本不相似,我一开始甚至没有注意到文件夹名称不匹配。Dev/a_random_branch_name
当"<group>
"的远程列表中重复列出相同的远程时,启用并行获取时,您还会收到 "git fetch <group>
"(man) 的错误消息。
这已经在 Git 2.40 (Q1 2023) 中得到了纠正。
请查看提交 06a668c(2023年1月19日)由Calvin Wan (CalvinWan0101
)提交。
(由Junio C Hamano -- gitster
--合并于提交 d26e26a,2023年1月27日)
fetch
:修复重复远程并行获取错误签名作者:Calvin Wan
Fetching in parallel from a remote group with a duplicated remote results in the following:
error: cannot lock ref '<ref>': is at <oid> but expected <oid>
This doesn't happen in serial since fetching from the same remote that has already been fetched from is a noop.
Therefore, remove any duplicated remotes after remote groups are parsed.
git log --pretty=oneline origin/my-branch
来查看你自己存储库中的历史记录,然后在 GitHub 中查看历史记录。如果它们不匹配,则意味着历史记录已被您或其他人强制更改。那是不好的,更改历史记录的人是不好的。 - Shahbaz