代码之家  ›  专栏  ›  技术社区  ›  Mario

Gerrit头:参考/发布/主块更改

  •  0
  • Mario  · 技术社区  · 7 年前

    尝试将我的更改上载到gerrit时 git review 我收到以下错误消息:

    Fetching gerrit
    2018-01-26 13:33:52.161429 Running: git rev-parse HEAD
    2018-01-26 13:33:52.166465 Running: git show-ref --quiet --verify refs/remotes/gerrit/master
    2018-01-26 13:33:52.172314 Running: git rebase -p -i remotes/gerrit/master
    2018-01-26 13:33:53.075322 Running: git reset --hard b8fb53d42c568aaed3216758076b5a5d2df6ebc6
    2018-01-26 13:33:53.086334 Running: git config --get-colorbool color.review true
    2018-01-26 13:33:53.091360 Running: git log --color=always --decorate --oneline HEAD --not --remotes=gerrit
    2018-01-26 13:33:53.098427 Running: git rev-parse --symbolic-full-name --abbrev-ref HEAD
    2018-01-26 13:33:53.105430 Running: git log --pretty='%B' HEAD^1..HEAD
    Using local branch name "master" for the topic of the change submitted
    2018-01-26 13:33:53.113735 Running: git push gerrit HEAD:refs/publish/master
    fatal: One or more refs/publish/ names blocks change upload
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.
    

    我的ssh密钥正常工作;我可以用ssh从gerrit克隆项目,没有错误;和 git review -s 工作正常。我的git配置:

    remote.origin.url=git@gitlab.test.lt:tt-java/service-client.git
    remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
    branch.master.remote=origin
    branch.master.merge=refs/heads/master
    remote.gerrit.url=ssh://test.test@review.test.lt:29418/service-client.git
    remote.gerrit.fetch=+refs/heads/*:refs/remotes/gerrit/*
    
    gerrit  ssh://test.test@review.test.lt:29418/service-client.git (fetch)
    gerrit  ssh://test.test@review.test.lt:29418/service-client.git (push)
    origin  git@gitlab.test.lt:tt-java/service-client.git (fetch)
    origin  git@gitlab.test.lt:tt-java/service-client.git (push)
    

    git审查 已通过osx上的自制软件安装。我读过关于发布到 refs/for/master ,但获取相同的错误。你知道这里怎么了吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Stephen Kennedy annamataws    6 年前

    参考/发布vs参考/用于

    refs/publish/* 只是 refs/for/* -使用其中一个没有区别。

    问题

    您的服务器存储库在 refs/for/ 命名空间。Gerrit拒绝工作因为现在 参考/用于/ (通常是一个“神奇的”分支)实际上是Git存储库中的一个真正的分支。

    这个分支可能是错误地为直接推送到Git存储库而不是Gerrit SSH端口的用户创建的。

    如何修复

    要查看已经存在哪些引用,Gerrit管理员需要转到该特定存储库并执行:

    git for-each-ref refs/for
    

    他需要删除所有这些引用或将其重命名为其他名称。通常,只需执行以下操作即可安全地删除所有这些组件:

    for n in $(git for-each-ref --format='%(refname)' refs/for); do git
    update-ref -d $n; done
    

    更多信息

    看见 here .

    推荐文章