📅  最后修改于: 2020-11-01 03:36:14             🧑  作者: Mango
Gerrit是一个基于Web的代码检查工具,它与Git集成并建立在Git版本控制系统的基础上(帮助开发人员一起工作并维护其工作历史)。完成代码审查后,它允许将更改合并到Git存储库。
Gerrit由Google的Shawn Pearce开发,以Java,Servlet,GWT(Google Web Toolkit)编写。 Gerrit的稳定版本为2.12.2,于2016年3月11日发布,已获得Apache License v2的许可。
以下是某些原因,为什么您要使用Gerrit。
您可以使用Gerrit在源代码中轻松找到错误。
如果您有常规的Git客户端,则可以使用Gerrit。无需安装任何Gerrit客户端。
Gerrit可用作开发人员和git存储库之间的中介。
Gerrit是一个免费的开源Git版本控制系统。
Gerrit的用户界面在Google Web Toolkit上形成。
它是一个轻量级的框架,用于检查每个提交。
Gerrit充当存储库,它可以推送代码并为您的提交创建审阅。
Gerrit为Git存储库和Web前端提供访问控制以进行代码检查。
您可以在不使用其他命令行工具的情况下推送代码。
Gerrit可以在存储库级别以及分支级别允许或拒绝该权限。
Eclipse支持Gerrit。
查看,验证和重新提交代码提交会减慢产品上市时间。
Gerrit只能与Git一起使用。
Gerrit运行缓慢,无法更改列出更改的排序顺序。
您需要管理员权限才能在Gerrit上添加存储库。
在使用Gerrit之前,您必须安装Git并执行一些基本的配置更改。以下是在不同平台上安装Git客户端的步骤。
您可以使用软件包管理工具在Linux上安装Git。例如,如果您使用的是Fedora,则可以用作-
sudo yum install git
如果您使用的是基于Debian的发行版(例如Ubuntu),请使用以下命令-
sudo apt-get install git
您可以通过从Git网站下载Git在Windows上安装它。只需转到msysgit.github.io链接,然后单击下载按钮。
可以使用以下命令在Mac上安装Git-
brew install git
另一种安装Git的方法是从Git网站下载它。只需转到Mac上的Git安装链接,该链接将安装Git for Mac平台。
安装Git后,您需要自定义配置变量以添加您的个人信息。您可以使用称为git config的Git工具以及-l选项来获取和设置配置变量(此选项提供当前配置)。
git config -l
运行上面的命令时,您将获得配置变量,如下图所示
您可以随时通过再次使用命令来更改自定义信息。在下一章中,您将学习如何使用git config命令配置用户名和用户电子邮件。
您可以通过设置名称和电子邮件变量来跟踪每次提交。 name变量指定名称,而email变量标识与Git提交关联的电子邮件地址。您可以使用以下命令设置它们-
git config --global user.email "your_email@mail.com"
git config --global user.name "your_name"
当您运行上述命令时,您将获得用户名和电子邮件地址,如下图所示。
SSH代表安全Shell ,有时也代表安全套接字Shell协议,用于从远程计算机安全访问网络服务。您可以设置SSH密钥,以在计算机和Gerrit之间提供可靠的连接。
您可以在Git Bash中使用以下命令检查本地计算机上的现有SSH密钥-
$ ls ~/.ssh
单击Enter按钮后,您将看到现有的SSH密钥,如下图所示-
如果找不到任何现有的SSH密钥,则需要创建一个新的SSH密钥。
您可以在Git Bash中使用以下命令生成用于身份验证的新SSH密钥-
$ ssh-keygen -t rsa -C "your_email@mail.com"
如果您已经拥有SSH密钥,则不要生成新密钥,因为它们将被覆盖。仅当已将Git与Git Bash一起安装时,才能使用ssh-keygen命令。
当您运行上述命令时,它将在〜/ .ssh目录中创建2个文件。
〜/ .ssh / id_rsa-它是私钥或标识密钥。
〜/ .ssh / id_rsa.pub-这是公共电视。
您可以将SSH密钥添加到进一步讨论的不同平台上的ssh-agent中。
在Linux系统上使用以下命令添加SSH密钥
cat /home//.ssh/id_rsa.pub
打开GIT GUI,然后转到帮助→显示SSH密钥,如下图所示。
然后,单击“复制到剪贴板”按钮,将密钥复制到剪贴板。
在Mac OS X中,可以使用以下命令将id_rsa.pub内容复制到剪贴板。
$ pbcopy < ~/.ssh/id_rsa.pub
可以使用以下步骤将SSH密钥添加到Gerrit帐户-
步骤1-首先在wmflabs.org服务上创建一个帐户。
步骤3-然后在右上角,单击您的用户名,然后选择设置选项。
在这里,我们创建了一个名为John的帐户以使用Gerrit
步骤4-单击左侧菜单上的“ SSH公钥”选项,然后将SSH公钥粘贴到字段中。
您可以使用以下命令将SSH密钥添加到Git-
第1步-打开Git Bash并使用以下命令获取ssh-agent。
$ eval 'ssh-agent'
步骤2-接下来,使用以下命令将SSH密钥添加到ssh-agent
$ ssh-add ~/.ssh/id_rsa
步骤3-现在,使用以下命令运行ssh,该命令与首次登录时使用的SSH指纹匹配。
$ ssh -p 29418 @gerrit.wikimedia.org
在上面的屏幕截图中,您可以看到xyz123是实例外壳程序帐户名,该名称在创建Gerrit帐户时使用,而Abc123是您的Gerrit帐户的用户名。
您可以使用以下Git Bash命令使用Git下载该示例以及在gerrit.wikimedia.org上组织的任何项目的源代码。
$ git clone
ssh://@gerrit.wikimedia.org:29418/mediawiki/extensions/examples
git clone命令将目录克隆到新目录;换句话说,获取现有存储库的副本。运行上面的命令时,您将获得类似于以下内容的屏幕截图。
上面的命令克隆了“示例”存储库,并从该存储库接收对象,文件等,并将其存储在本地分支中。
如本章所述,您可以通过在不同平台上安装git-review来使用Gerrit。
在Windows中,您可以按照以下步骤安装git-review。
步骤1-首先安装Python以安装git-review。
步骤2-将Python安装保留在默认目录(例如C:\ Python27)中,而不要安装在任何其他目录中。
步骤3-接下来,使用路径C:\ Python27 \; C:\ Python27 \ Scripts \;设置Python脚本目录的环境变量。
git_review_install
步骤4-使用2.7版, Python将自动安装pip。对于旧版本的Python 2.7,您可以按照此链接中的说明安装pip。
步骤5-运行打开的Git Bash并使用以下命令安装git-review。
$ pip install git-review
在Linux中,您可以按照以下步骤中的说明安装git-review-
步骤1 Linux平台的用户在共享主机上没有root访问权限。因此,没有root访问权限,您可以使用以下命令在用户目录本地安装git-review-
virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review==1.21
步骤2-您可以使用两种方式将路径扩展到本地二进制文件-
PATH=$PATH:~/virtualenv/bin/
PATH=~/virtualenv/bin/:$PATH
步骤3-现在,使用以下命令来设置Gerrit的工作。
git review -s
or
~/virtualenv/bin/git-review -s
步骤4-具有root访问权限,可以使用以下命令安装git-review。
sudo apt-get install git-review
步骤5-如果在安装Python之后没有apt-get ,请使用以下命令。
$ sudo easy_install pip
$ sudo pip install git-review==1.21
步骤6-运行以下命令以使用Gerrit。
git review -s
在Mac中,您可以按照以下步骤安装git-review。
步骤2-接下来,使用以下命令安装git-review。
brew install git-review
Gerrit建立在Git版本控制系统之上,该版本控制系统从其他主机提取代码,推送对代码的更改,提交代码以供审查等。Git的默认远程名称是origin,我们告诉git-review使用此代码使用以下命令将名称命名为“ origin” 。
$ git config --global gitreview.remote origin
Git-review可用于将git分支发送到Gerrit进行审阅。您可以在项目目录中使用以下命令设置gitreview。
$ git review -s
Git-review可用作配置Git克隆,将分支提交给Gerrit,获取现有文件等的命令行工具。Git-review查找默认情况下使用Gerrit的远程命名gerrit。
如果git-review找到Gerrit远程目录,则它将分支提交到远程位置的HEAD:refs / for / master ,如果没有Gerrit远程访问,则git-review查找。存储库根目录中的gitreview文件以及gerrit远程信息。
Git审查内部处理以下内容-
它将检查远程存储库是否适用于提交分支。
如果没有Gerrit远程访问,它将要求输入用户名,然后尝试再次访问存储库。
它将创建一个名为gerrit的远程访问,该访问指向Gerrit。
它将安装commit-msg挂钩。
您可以使用以下命令使master分支保持最新状态。 git-pull命令从另一个本地分支获取或与另一个存储库集成。
git pull origin master
该命令将从原始远程站点(要从中获取的远程站点的URL),主分支中提取更改,并将更改合并到本地已签出的分支中。
源主机是从源中提取的最后一个主机的缓存副本。
Git pull是git fetch(从远程存储库获取新提交)和git merge(将新提交集成到本地分支)的组合。
Git pull默认情况下将本地分支与远程分支合并。
您可以使用以下命令在本地计算机上创建分支。
$ git checkout -b name_of_branch origin/master
上面的命令创建一个新分支,如以下屏幕截图所示。
在这里,我们将branch123用作新的本地分支。您可以使用以下命令从“ master”中显示新分支。
$ git branch
上面的命令产生的结果如以下屏幕快照所示。
Git检出在分支之间导航,更新工作目录中的文件,并通知Git记录该分支上的提交。
在本地文件系统中修改代码时,可以使用以下命令检查目录中的更改。
$ git diff
在项目目录中,我们将修改名为Example / Example.hooks.php的文件中的某些更改,然后运行以上命令。我们将获得结果,如以下屏幕截图所示。
您可以使用以下命令检查对文件或目录所做的更改。
$ git status
上面的命令允许查看已进行的更改,尚未进行的更改以及Git未跟踪的文件。
接下来,您可以使用以下命令在工作目录中添加更改并在下一次提交中更新文件。
$ git add Example/Example.hooks.php
添加文件后,再次运行git status命令以查看添加到登台区域的更改,如以下屏幕截图所示。
您可以使用以下命令查看索引与上一次提交之间的差异以及已暂存的内容。
$ git diff --cached
您可以使用以下命令将更改从本地存储库推送到远程目录。
$ git commit
当您运行上述命令时,它将要求添加提交消息以进行更改。当您将提交推送到另一个存储库时,其他人将看到此消息。
添加提交消息并再次以git commit的身份运行命令,这将显示提交消息,如以下屏幕截图所示。
您需要先查看Gerrit中的更改,然后再将其合并到主版本中。可以同步主服务器中发生的更改。在您正在处理的分支中使用以下命令。
$ git pull --rebase origin master
上面的命令将从远程分支中获取更改或提交,并将提交重新置于主机之上。
完成更改并重新提交后,您可以将更改集推送到Gerrit进行审查。
当更改不值得一个单独的分支时,通常使用Git pull –rebase。
Git pull是git fetch和git merge的组合;其中git pull –rebase是git fetch和git rebase的组合。
首先,以git pull origin master的身份运行命令,如以下屏幕截图所示。
现在,使用该命令作为git rebase master来重新提交提交,如以下屏幕截图所示。
您可以使用git-review命令将修补程序提交进行审查。可以通过运行git review -R命令将更改集推送到Gerrit,如以下屏幕截图所示。
-R选项在将git更改提交给Gerrit之前通知git-review不完成变基。
您可以使用以下命令将代码提交给其他分支而非主分支。
git review name_of_branch
也可以使用以下命令将代码提交到其他遥控器。
git review -r name_of_remote
单击此链接可以在Gerrit仪表板中查看更改。
单击修改的作者姓名链接,您将获得以下屏幕截图。
单击扩散链接以查看更改的文件以及其他详细信息,如以下屏幕截图所示。
登录到Gerrit帐户后,您可以通过Web界面编辑项目,如以下步骤所示。
步骤1-通过单击此链接转到Gerrit仪表板。您将获得以下屏幕截图。
步骤2-接下来单击“项目”列下指定的mediawiki / extensions / examples链接。
步骤3-单击工具栏上的“常规”链接,如以下屏幕截图所示。
步骤4-当您打开“常规”链接时,它将显示以下屏幕截图。
步骤5-单击创建更改按钮,它将打开一个弹出窗口,其中包含一些详细信息,如以下屏幕截图所示。
步骤6-输入信息,然后单击创建按钮。
创建更改后,它将显示信息,如以下屏幕截图所示。
步骤7-单击编辑,然后单击添加。现在选择您要编辑的文件。在这里,我们选择了文件Example / i18n / en.json 。
当您打开文件时,它将显示以下屏幕截图中指定的json数据。
步骤8-单击保存,然后单击关闭按钮。
步骤9-最后单击“发布”按钮以发布编辑后的文件
步骤10-您可以通过单击“提交消息”链接来更改提交消息,如以下屏幕截图所示。
步骤11-如果您想单击“保存” ,然后单击“关闭”按钮,请按键盘上的e并添加一些其他信息。
代码审查是Gerrit中工作流的重要组成部分。基本概念是,在合并之前必须先检查代码。
可以在合并之前查看MediaWiki代码的工作流程,还可以查看用于自定义MediaWiki外观和工作方式的扩展。在一种特殊情况下,您可以推动国际化和本地化提交。
完成开发后,可以将所有提交推送到远程分支。某人将获取更改到本地,并通过创建合并提交将那些获取的更改合并到本地主服务器。您可以将这些更改推送到refs / for / master 。
项目所有者是指该项目属于上述人员。项目所有者是一个虚拟组,您无法在其中添加成员或其他组。项目所有者提供访问权限,以允许对不同组的项目许可。
您可以使用以下步骤查看项目的访问权限。
步骤1-通过单击此链接打开Gerrit仪表板。
步骤2-单击项目→列表选项。在项目列表中搜索项目,然后单击它,如以下屏幕截图所示。
步骤3-打开项目时,单击“访问”选项,如以下屏幕截图所示。
步骤4-单击编辑选项。您可以通过单击下拉菜单来更改访问权限。单击“保存更改”按钮,如以下屏幕截图所示。
任何人都可以在Gerrit中查看该代码并对代码进行评论。考虑以下步骤-
步骤1-登录到Gerrit以打开上一章中指定的Gerrit仪表板。
步骤2-现在,单击包含Gerrit项目,分支,更新日期等的任何主题,如以下屏幕截图所示。
步骤3-接下来,它将显示一个屏幕。单击“提交消息”选项,如以下屏幕截图所示。
变更集的重要字段包括“审阅者”,“添加审阅者”,“并排关闭”等。比较补丁集包括选择旧版本历史记录列表,扩展较新的补丁集详细信息等。查看和合并或拒绝代码包括放弃更改按钮,提交补丁按钮等,这些在当前的Gerrit版本中不存在。