git push 失败,拒绝更新隐藏的引用

Posted

技术标签:

【中文标题】git push 失败,拒绝更新隐藏的引用【英文标题】:git push fails with deny updating hidden ref 【发布时间】:2019-06-17 20:48:02 【问题描述】:

我有一个我的 dotfiles 的存储库,并去从一个分支推送更改只是遇到......

$ git push
Enumerating objects: 46, done.
Counting objects: 100% (46/46), done.
Writing objects: 100% (46/46), 3.20 MiB | 1.52 MiB/s, done.
Total 46 (delta 0), reused 0 (delta 0)
To gitlab.com:auser/dotfiles.git
 ! [remote rejected] kimura -> origin/kimura (deny updating a hidden ref)
 ! [remote rejected] master -> origin/master (deny updating a hidden ref)
error: failed to push some refs to 'git@gitlab.com:auser/dotfiles.git'

This thread 建议它是因为在源上提出的拉取请求并链接到 blog post 以及如何跳过此问题的解决方案,尽管我没有在被拒绝的路径中明确包含 refs/pull 所以它可能是不同的问题,但我找不到太多关于此的信息,所以我想尝试提出的解决方案并将我的配置更新为...

    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = git@gitlab.com:auser/dotfiles.git
        fetch = +refs/heads/*:refs/heads/*
        fetch = +refs/tags/*:refs/tags/*
        fetch = +refs/change/*:refs/change/*
        pushurl = git@gitlab.com:auser/dotfiles.git
        push = +refs/heads/*:refs/remotes/origin/*
[submodule "oh-my-zsh/.oh-my-zsh"]
        url = https://github.com/robbyrussell/oh-my-zsh
        active = true
[branch "master"]
        remote = origin
        merge = refs/heads/master
        pushRemote = origin
[branch "kimura"]
        remote = origin
        merge = refs/heads/kimura
        fetch = +refs/heads/*:refs/heads/*
        fetch = +refs/tags/*:refs/tags/*
        fetch = +refs/change/*:refs/change/*

但问题仍然存在。我的分支是...

$ git branch -a
* kimura
  master
  remotes/origin/kimura
  remotes/origin/master

我尝试推送的主机是我在镜像到 Gitlab 之前启动 repo 的地方。

【问题讨论】:

push = +refs/heads/*:refs/remotes/origin/* 在一般情况下应该是push = +refs/heads/*:refs/heads/* 谢谢,这就是进步,我现在被告知我不能推送到受保护的分支,我只保护了 master 但已经解决了这个问题。不知道如何以这种方式设置配置。 @slackline 这不是说你的问题已经解决了吗?如果是这样,那么没有公认的答案是相当误导 - 也许你可以自我回答并正式关闭它 【参考方案1】:

我遇到了同样的错误[remote denied] origin/myBranch (deny update a hidden ref)

问题是:

我将一个远程仓库 mobile 克隆到一个文件夹中,然后,我对代码进行了修改,当我尝试推送时,而不是推送本地仓库 mobile到远程的,我试图推动它的父母

正确的方法是在你克隆的本地仓库中打开 git bash 并执行正确的命令,这也可能是你的问题。

【讨论】:

以上是关于git push 失败,拒绝更新隐藏的引用的主要内容,如果未能解决你的问题,请参考以下文章

Git 因致命错误而失败。拒绝将不相关的历史与 git push 合并?

如何在 git push 上解决“拒绝允许 OAuth 应用程序创建或更新工作流”

Git 和讨厌的“错误:无法锁定现有信息/引用致命”

git push代码到github被拒绝是怎么回事

git push 详细手册

推送到数组引用