Gerrit – 快速指南
Gerrit – 快速指南
Gerrit – 概述
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 的某些原因。
-
您可以使用 Gerrit 在源代码中轻松找到错误。
-
如果你有普通的 Git 客户端,你可以使用 Gerrit;无需安装任何 Gerrit 客户端。
-
Gerrit 可以用作开发人员和 git 存储库之间的中间件。
Gerrit 的特点
-
Gerrit 是一个免费的开源 Git 版本控制系统。
-
Gerrit 的用户界面是在Google Web Toolkit上形成的。
-
它是一个用于审查每个提交的轻量级框架。
-
Gerrit 充当存储库,它允许推送代码并为您的提交创建审查。
Gerrit 的优势
-
Gerrit 为 Git 存储库和 Web 前端提供访问控制以进行代码审查。
-
您可以在不使用其他命令行工具的情况下推送代码。
-
Gerrit 可以允许或拒绝存储库级别和分支级别的权限。
-
Eclipse 支持 Gerrit。
Gerrit 的缺点
-
审查、验证和重新提交代码提交会减慢上市时间。
-
Gerrit 只能使用 Git。
-
Gerrit 很慢,并且无法更改列出更改的排序顺序。
-
您需要管理员权限才能在 Gerrit 上添加存储库。
Gerrit – 安装
在使用 Gerrit 之前,您必须安装 Git 并执行一些基本的配置更改。以下是在不同平台上安装 Git 客户端的步骤。
安装 Git 客户端
Linux
您可以使用软件包管理工具在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 安装链接,它将为 Mac 平台安装 Git。
Gerrit – 配置 Git
安装 Git 后,您需要自定义配置变量以添加您的个人信息。您可以使用名为git config 的Git 工具以及 -l 选项(此选项提供当前配置)来获取和设置配置变量。
git config -l
当你运行上面的命令时,你会得到如下图所示的配置变量
您可以随时再次使用这些命令来更改自定义信息。在下一章中,您将学习如何使用git config命令配置用户名和用户电子邮件。
Gerrit – 设置您的用户名和电子邮件
您可以通过设置名称和电子邮件变量来跟踪每个提交。name 变量指定名称,而 email 变量标识与 Git 提交关联的电子邮件地址。您可以使用以下命令设置这些 –
git config --global user.email "[email protected]" git config --global user.name "your_name"
当您运行上述命令时,您将获得如下图所示的用户名和电子邮件地址。
Gerrit – 生成新的 SSH 密钥
SSH 代表Secure Shell,有时也代表Secure Socket Shell协议,用于从远程计算机安全地访问网络服务。您可以设置 SSH 密钥以在计算机和 Gerrit 之间提供可靠的连接。
您可以在 Git Bash 中使用以下命令检查本地计算机上现有的 SSH 密钥 –
$ ls ~/.ssh
单击输入按钮后,您将看到现有的 SSH 密钥,如下图所示 –
如果找不到任何现有的 SSH 密钥,则需要创建一个新的 SSH 密钥。
生成新的 SSH 密钥
您可以在 Git Bash 中使用以下命令生成用于身份验证的新 SSH 密钥 –
$ ssh-keygen -t rsa -C "[email protected]"
如果您已有 SSH 密钥,则不要生成新密钥,因为它们会被覆盖。您可以使用ssh-keygen命令,前提是您已经使用 Git Bash 安装了 Git。
当您运行上述命令时,它将在~/.ssh目录中创建 2 个文件。
-
~/.ssh/id_rsa – 它是私钥或识别密钥。
-
~/.ssh/id_rsa.pub – 这是一个公共电视。
Gerrit – 添加您的 SSH 密钥
您可以将 SSH 密钥添加到进一步讨论的不同平台上的 ssh-agent。
Linux
在 Linux 系统上使用以下命令添加 SSH 密钥
cat /home/<local-user>/.ssh/id_rsa.pub
视窗
打开 GIT GUI 并转到帮助 → 显示 SSH 密钥,如下图所示。
然后,单击复制到剪贴板按钮,将密钥复制到剪贴板。
苹果电脑
在 Mac OS X 中,您可以使用以下命令将id_rsa.pub内容复制到剪贴板。
$ pbcopy < ~/.ssh/id_rsa.pub
Gerrit – 将 SSH 密钥添加到您的 Gerrit 帐户
可以使用以下步骤将 SSH 密钥添加到 Gerrit 帐户 –
-
步骤 1 – 首先在wmflabs.org服务上创建一个帐户。
-
步骤 3 – 然后在右上角,单击您的用户名并选择设置选项。
在这里,我们创建了一个名为 John 的帐户以使用 Gerrit
-
第 4 步– 单击左侧菜单上的“SSH 公钥”选项,然后将 SSH 公钥粘贴到该字段中。
Gerrit – 添加 SSH 密钥以与 Git 一起使用
您可以使用以下命令将 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 <user_name>@gerrit.wikimedia.org
在上面的截图中,你可以看到xyz123是一个实例shell账户名,在创建Gerrit账户时使用,Abc123是你的Gerrit账户的用户名。
Gerrit – 使用 Git 下载示例
您可以使用 Git 下载示例以及使用以下 Git Bash 命令在gerrit.wikimedia.org 上组织的任何项目的源代码。
$ git clone ssh://<user_name>@gerrit.wikimedia.org:29418/mediawiki/extensions/examples
该混帐克隆命令克隆一个目录到新目录中; 换句话说,获取现有存储库的副本。当您运行上述命令时,您将获得类似于以下内容的屏幕截图。
上面的命令克隆“示例”存储库并从该存储库接收对象、文件等,并将其存储在您的本地分支中。
Gerrit – 安装 Git-Review
你可以通过在本章讨论的不同平台上安装git-review来使用 Gerrit 。
视窗
在 Windows 中,您可以按照以下步骤安装 git-review。
步骤 1 – 首先安装Python以安装 git-review。
第 2 步– 将 Python 安装保留在默认目录(如 C:\Python27)中,而不是安装在任何其他目录中。
Step 3 – 接下来,使用路径为 Python 脚本目录设置环境变量C:\Python27\;C:\Python27\Scripts\;
git_review_install
第 4 步– 在 2.7 版中,Python 将自动安装 pip。对于旧版本的 Python 2.7,您可以按照此链接中的说明安装 pip 。
第 5 步– 运行打开的 Git Bash 并使用以下命令安装 git-review。
$ pip install git-review
Linux
在 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 OS X
在 Mac 中,您可以使用以下步骤安装 git-review。
步骤 2 – 接下来,使用以下命令安装 git-review。
brew install git-review
Gerrit – 配置 Git-Review
Gerrit 建立在 Git 版本控制系统之上,它从其他主机提取代码,推送代码更改,提交代码以供审查等。 Git 的默认远程名称是 origin,我们告诉 git-review 使用它使用以下命令命名“origin”。
$ git config --global gitreview.remote origin
Gerrit – 设置 Git-Review
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-review 在内部处理以下内容 –
-
它将检查远程存储库是否可以用于提交分支。
-
如果没有 Gerrit 远程访问,那么它会询问用户名并再次尝试访问存储库。
-
它将创建一个名为 gerrit 的远程访问,指向 Gerrit。
-
它将安装 commit-msg 钩子。
Gerrit – 更新大师
您可以使用以下命令使 master 分支保持最新状态。git-pull 命令从另一个本地分支获取或与另一个存储库集成。
git pull origin master
-
该命令将从源远程(要从中获取的远程 URL)、主分支拉取更改并将更改合并到本地检出分支。
-
源主机是最后从源中提取的缓存副本。
-
Git pull 是 git fetch(从远程存储库获取新提交)和 git merge(将新提交集成到本地分支)的组合。
-
Git pull 默认将本地分支与远程分支合并。
Gerrit – 创建一个分支
您可以使用以下命令在本地机器上创建一个分支。
$ git checkout -b name_of_branch origin/master
上面的命令创建一个新分支,如下面的屏幕截图所示。
在这里,我们使用branch123作为新的本地分支。您可以使用以下命令显示来自“master”的新分支。
$ git branch
上述命令产生的结果如下面的屏幕截图所示。
Git checkout在分支之间导航,更新工作目录中的文件,并通知 Git 记录该分支上的提交。
Gerrit – 做出并提交你的改变
当您修改本地文件系统中的代码时,您可以使用以下命令检查目录中的更改。
$ 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 – 准备推送变更集到 Gerrit
在将它们合并到 master 之前,您需要查看 Gerrit 中的更改。可以同步主站中发生的更改。在您一直在处理的分支中使用以下命令。
$ git pull --rebase origin master
-
上面的命令将从远程分支获取更改或提交,并将提交重新设置在 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 来重新设置提交,如下面的屏幕截图所示。
Gerrit – 将更改集推送到 Gerrit
您可以使用git-review命令提交补丁以供审核。通过运行git review -R命令,可以将更改集推送到 Gerrit,如下面的屏幕截图所示。
该-R选项通知Git的审查不完整的底垫中提交的git变化格里特之前。
您可以使用以下命令将代码提交到其他分支而不是 master。
git review name_of_branch
也可以使用以下命令将代码提交到不同的遥控器。
git review -r name_of_remote
Gerrit – 查看更改/后续步骤
单击此链接可以在 Gerrit 仪表板中查看更改。
单击修改后的作者姓名链接,您将获得以下屏幕截图。
单击扩散链接以查看更改的文件以及其他详细信息,如下面的屏幕截图所示。
Gerrit – 通过网络界面编辑
登录 Gerrit 帐户后,您可以通过 Web 界面编辑项目,如下步骤所示。
步骤 1 – 单击此链接转到 Gerrit 仪表板。您将获得以下屏幕截图。
步骤 2 – 接下来单击项目列下指定的mediawiki/extensions/examples链接。
步骤 3 – 单击工具栏中的常规链接,如下面的屏幕截图所示。
Step 4 – 当您打开General链接时,它将显示如下屏幕截图。
步骤 5 – 单击创建更改按钮,它将打开一个弹出窗口,其中包含一些详细信息,如下面的屏幕截图所示。
步骤 6 – 输入信息并单击创建按钮。
创建更改后,它将显示如下屏幕截图所示的信息。
步骤 7 – 单击编辑,然后单击添加。现在选择要编辑的文件。这里我们选择了文件Example/i18n/en.json。
当您打开该文件时,它将显示以下屏幕截图中指定的 json 数据。
步骤 8 – 单击保存,然后单击关闭按钮。
步骤 9 – 最后单击发布按钮发布编辑的文件
步骤 10 – 您可以通过单击提交消息链接来更改提交消息,如下面的屏幕截图所示。
步骤 11 – 按键盘上的e并添加一些额外信息,如果您希望单击保存,然后单击关闭按钮。
Gerrit – 合并前审查
代码审查是 Gerrit 工作流的重要组成部分。基本概念是代码在合并之前必须经过审查。
可以在合并之前查看MediaWiki代码的工作流程,还可以查看自定义 MediaWiki 外观和工作的扩展。在一种特殊情况下,您可以推送国际化和本地化提交。
完成开发后,您可以将所有提交推送到远程分支。有人会将更改获取到本地,并通过创建合并提交将这些获取的更改合并到本地主服务器中。您可以将这些更改推送到refs/for/master。
Gerrit – 项目业主
项目所有者是指该项目属于所提及的人。项目所有者是一个虚拟组,您不能在其中添加成员或其他组。项目所有者提供访问权限以允许对不同组的项目权限。
您可以使用以下步骤查看项目的访问权限。
步骤 1 – 单击此链接打开 Gerrit 仪表板。
步骤 2 – 单击项目 → 列表选项。在您的项目列表中搜索该项目并单击它,如下面的屏幕截图所示。
步骤 3 – 打开项目时,单击访问选项,如下面的屏幕截图所示。
步骤 4 – 单击编辑选项。您可以通过单击下拉菜单更改访问权限。单击“保存更改”按钮,如下面的屏幕截图所示。
如何评论、审查和合并
任何人都可以在 Gerrit 中查看代码并评论代码。考虑以下步骤 –
步骤 1 – 登录 Gerrit 以打开上一章中指定的 Gerrit 仪表板。
第 2 步– 现在,单击包含 Gerrit 项目、分支、更新日期等的任何主题,如下面的屏幕截图所示。
步骤 3 – 接下来,它将显示一个屏幕。单击“提交消息”选项,如下面的屏幕截图所示。
变更集的重要字段如 Reviewers、Add Reviewer、Side-by-side off 等。 比较补丁集包括选择旧版本历史列表、扩展新补丁集详细信息等。 审查合并或拒绝代码包括当前版本的 Gerrit 中没有的放弃更改按钮、提交补丁按钮等。