我有一个场景。我有两个实例,Gerrit的实例1和Git的实例2。我想了解git如何拦截直接发送到实例2的请求?
可以安全地假设我必须远程安装gerrit,而不是在git实例上安装。
在初始化gerrit时,交互式cli屏幕会询问git存储库位置,该位置应该是本地(?)目录,例如/ home / me / git-repo(在git-repo中我有我的project.git文件)。如果不是本地存储库,我指定一个远程存储库URI,比如ssh://git@git.machine.com/root/project.git,首先,它会起作用吗?如果是的话,它是如何真正拦截所有的推送,请求来到ssh://git@git.machine.com/root/?
答案 0 :(得分:1)
这是可能的。首先要明白,gerrit将作为你的远程git的临时工作场所。这意味着当用户提交补丁集时,首先需要转到Gerrrit的git工作区。通常为$ GERRIT_HOME / git /。现在需要启用复制以便将此repo同步到他们想要最终提交代码的远程git服务器。关于复制设置和git项目设置的一些有用链接可以在这里找到:
https://review.typo3.org/plugins/replication/Documentation/config.html
Importing already existing git repo with multiple branches and tags into gerrit
示例replication.config可以帮助您:
[remote "github-remote-name"]
url = git@<remote-git-server>/${name}.git
请注意,此$ {name}是一个神奇的关键字,需要与要同步的repo匹配。要同步您可能拥有的许多选择性回购,请按照上面链接中的指南进行操作。
希望这会有所帮助。