我有一个基本存储库,它位于UNC \ machine \ share ....等。 我有一个本地克隆,我在主分支中工作,偶尔合并到“稳定”分支。
通常我会这样做git push --all
将所有分支中的所有更改移至服务器。创建新分支后
git branch MultiCompany
然后将其推送到服务器
git push --all
也在服务器上创建分支。我做了一些工作,在多公司分支中提交了所有更改然后尝试做了
git push --all
并收到以下错误:
cdturner@OAHU ~/desktop/git sourcetree/maerekai.web.framework (multicompany)
$ git push --all
Counting objects: 28, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (22/22), done.
Writing objects: 100% (23/23), 11.34 KiB, done.
Total 23 (delta 8), reused 0 (delta 0)
Unpacking objects: 100% (23/23), done.
error: Ref refs/heads/multicompany is at bd5a32df35ce8d5ae30ce999af34c4c5f35581df but expected 0000000000000000000000000000000000000000
remote: error: failed to lock refs/heads/multicompany
To //pluto/users/cdturner/Git repositories/Maerekai.web.framework.git
! [remote rejected] multicompany -> multicompany (failed to lock)
error: failed to push some refs to '//pluto/users/cdturner/Git repositories/Maerekai.web.framework.git'
我尝试用git reset --hard HEAD^
然后重试推送.....
cdturner@OAHU ~/desktop/git sourcetree/maerekai.web.framework (multicompany)
$ git push --all
Total 0 (delta 0), reused 0 (delta 0)
error: Ref refs/heads/multicompany is at bd5a32df35ce8d5ae30ce999af34c4c5f35581df but expected 0000000000000000000000000000000000000000
remote: error: failed to lock refs/heads/multicompany
To //pluto/users/cdturner/Git repositories/Maerekai.web.framework.git
! [remote rejected] multicompany -> multicompany (failed to lock)
error: failed to push some refs to '//pluto/users/cdturner/Git repositories/Maerekai.web.framework.git'`
答案 0 :(得分:15)
为了记录,我认为这个问题的根本原因是本地和远程分支名称之间的大写差异,以及托管远程存储库的Windows共享的不区分大小写的性质。
我们刚刚遇到了这个完全相同的错误,只需重新命名本地分支以匹配现有远程分支的大小写就能解决问题。
请参阅此处how to rename a local branch。
在Windows中,由于大写,您可能需要采取两个步骤:
git branch -m example foo
git branch -m foo EXAMPLE
答案 1 :(得分:6)
在远程仓库上做一个git fsck --full。远程回购可能已经腐败。从遥控器克隆另一个。用这个替换原来的遥控器。你现在应该能够再次推动。远程仓库发生了一些事情。你正在做的事与经常使用不符。
答案 2 :(得分:5)
我发现的一个错误是尝试将分支develop
推送到具有名为develop/1148
和develop/693
分支的存储库。 git对此没有问题(我忘了为什么),所以删除那些分支(如果可能的话)修复了这个挂断。
答案 3 :(得分:3)
谢谢,git fsck --full报道了“悬空提交”
所以git prune吹走了令人讨厌的东西,我又把它输入了。 Btu至少树木都已经解决了。
感谢您的帮助。