Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git Gerrit push不工作。远程拒绝,gerrit禁止_Git_Github_Ssh_Gerrit - Fatal编程技术网

Git Gerrit push不工作。远程拒绝,gerrit禁止

Git Gerrit push不工作。远程拒绝,gerrit禁止,git,github,ssh,gerrit,Git,Github,Ssh,Gerrit,我正在尝试向gerrit添加现有回购协议。我创建了一个空项目,并尝试推送它(gitpush)ssh://admin@localhost:29418/project*:*)。我收到此错误消息作为回报: Counting objects: 14, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 384 bytes | 0

我正在尝试向gerrit添加现有回购协议。我创建了一个空项目,并尝试推送它(
gitpush)ssh://admin@localhost:29418/project*:*
)。我收到此错误消息作为回报:

Counting objects: 14, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 384 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 3 (delta 1)
remote: Resolving deltas: 100% (1/1)
remote: Processing changes: refs: 3, done    
To ssh://admin@localhost:29418/project
 ! [remote rejected] origin/HEAD -> origin/HEAD (prohibited by Gerrit)
 ! [remote rejected] origin/master -> origin/master (prohibited by Gerrit)
 ! [remote rejected] origin/ref/for/master/testing -> origin/ref/for/master/testing (prohibited by Gerrit)
error: failed to push some refs to 'ssh://admin@localhost:29418/project'

我已经访问了gerrit网站,并在
project/access
下添加了
refs/head/*
为所有用户创建参考权限

除了添加创建引用权限外,还需要确保您拥有直接推送/强制推送权限——创建引用将涉及创建新分支,而更新现有分支(即,
origin/HEAD
origin/master
)将需要直接推送/强制推送权限(我在文档中看到gerrit将其称为直接推送和强制推送)。

根据我的经验,您需要以下组权限才能将整个存储库导入gerrit--基本上是将所有内容推送到gerrit repo的权限:

  • 参考文献/总目/*
    • 创建引用
    • 伪造作者身份
    • 伪造提交者身份
    • 推合并提交
    • 推式注释标记
  • 参考文献/标签/*
    • 创建引用

在您的git项目中,使用git config--list查看您的用户名。用户名、user.email是否等于您的本地gerrit站点用户名或电子邮件。它们必须相同。如果不相等,请使用git config user.name XXX

终于。git config remote.origin.push refs/heads/:refs/for/
因此,您可以使用git push origin master

,因此我为用户添加了强制推送权限,但在推送origin/HEAD和origin/master Remote时仍然会出现(gerrit禁止)错误。我假设您能够正常使用gerrit(即创建更改并合并它们),而只是在直接推送时遇到问题?