【问题标题】:Git problems with git push --allgit push --all 的 Git 问题
【发布时间】:2011-04-29 10:43:48
【问题描述】:

我有一个位于 UNC \machine\share ....etc 上的基础存储库。 我有一个本地克隆,我在主分支中工作,偶尔会合并到“稳定”分支。

通常我会做一个 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'`

【问题讨论】:

    标签: git push


    【解决方案1】:

    为了记录,我认为这个问题的根本原因是本地和远程分支名称的大小写不同,以及托管远程存储库的 Windows 共享不区分大小写。

    我们刚刚遇到了同样的错误,只需重命名本地分支以匹配现有远程分支的大小写即可解决问题。

    请看这里how to rename a local branch

    在 Windows 中,由于大小写,您可能需要采取两个步骤:

    git branch -m example foo
    git branch -m foo EXAMPLE
    

    【讨论】:

    • 谢谢!同样的问题...感谢您的评论,我最终将能够解决我在这里遇到的问题:)
    • 我无法使用 SourceTree 重命名(“分支已经存在......)”,所以我重命名为临时分支名称,从 .git/refs/heads 中删除了不正确的文件夹大写,然后将分支重命名为使用正确的大小写。
    • 当我尝试这个时,我收到错误消息“致命:一个名为的分支已经存在。”所以我改用“-M”开关。
    【解决方案2】:

    在远程仓库上执行 git fsck --full 。远程仓库可能已损坏。从遥控器克隆另一个。用这个替换原来的遥控器。您现在应该可以再次推动。远程仓库发生了一些事情。您所做的一切都与常规使用不符。

    【讨论】:

      【解决方案3】:

      我发现一个错误是尝试将分支 develop 推送到具有名为 develop/1148develop/693 的分支的存储库。 git 对此不满意(我忘记了原因),因此删除这些分支(如果可能)修复了这个挂起。

      【讨论】:

      • 这是我的解决方案。当遥控器上存在一个名为dev/rob 的古老分支时,我试图推送dev。运行git push origin :dev/rob首先修复它。
      • 也为我工作。当远程上已经存在一个名为 release 的分支时,试图推送一个名为 release/patch1 的分支。
      • Git 不允许有一个分支、一个分支文件夹和一个同名的标签。直到
      【解决方案4】:

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

      所以 git prune 把有问题的东西吹走了,我不得不再次输入它。 Btu 至少树都解决了..

      感谢您的帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-30
        • 1970-01-01
        • 2017-12-10
        • 2017-07-29
        • 1970-01-01
        • 2011-05-29
        相关资源
        最近更新 更多