我正在尝试使用gerrit,并且在提交时遇到了一些问题。当我提交更改并将其推送到分支时,有时会引发两个代码审查,一个是我的,另一个是在同一分支上工作的人的评论,而且很多时候我收到的消息是,即使我做了,也要提前5次提交只有一次提交。我正在使用以下命令:
git add <file_name>
git commit -m "commit msg"
git push <branch name>
在进一步的研究中,我发现由于git hook可能存在问题,因为我没有在任何地方使用git hook。由于git hook gerrit不能区分由不同人员完成的提交,因此一键式提出了许多评论。我的理解正确吗?如果没有,请帮助我为什么会发生。
我还要在git hook命令中询问:
scp -p -P 29418 username@your_gerrit_address:hooks/commit-msg.git/hooks/
此命令的作用是什么,这个数字29418是什么。这个数字是gerrit给出的吗?
答案 0 :(得分:0)
当我提交更改并将其推送到brnach时,有时会引发两个代码审查,一个是我的,另一个是在同一分支上工作的人的审查
这听起来像是预期的行为;上传供审核的提交尚未合并到您的分支机构。这个想法是由其他团队成员(或您的组织想要的任何设置)审查提交,批准,然后提交/合并。
直到您按下“提交”按钮,提交才真正出现在“真实”分支上。意思是,这就是下载存储库的任何人都可以看到的。
很多时候我收到消息,即使我只进行了一次提交,您也提前5次提交
这是因为您的本地存储库有5个提交,这些提交不知道存在于上游(在“官方”分支中)。
首先,尝试“ git fetch”;它将更新您本地副本的远程视图(服务器存储库),以便您可以看到最近提交的任何内容。本质上,这使您的本地存储库知道“好的,这些提交现在已提交”。
如果这还不够,那么您可能有5个未提交的提交在Gerrit中待处理。
由于git hook gerrit无法区分由不同人员完成的提交,因此一键推送就引发了许多评论。我的理解是正确的吗?
这似乎有可能。 Gerrit通过“ Change-Id:”标记将提交与现有更改进行匹配。如果您没有git commit钩子来添加该行,那么gerrit可能会在您每次推送时为每个提交创建一个新更改。
这也与前面的讨论有关;您的本地仓库不知道其中一些提交已提交。因此,每次都会上传全部5个。