使用git push来解决问题--all

时间:2010-10-23 00:28:30

标签: git push

我有一个基本存储库,它位于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'`

4 个答案:

答案 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/1148develop/693分支的存储库。 git对此没有问题(我忘了为什么),所以删除那些分支(如果可能的话)修复了这个挂断。

答案 3 :(得分:3)

谢谢,git fsck --full报道了“悬空提交”

所以git prune吹走了令人讨厌的东西,我又把它输入了。 Btu至少树木都已经解决了。

感谢您的帮助。