一、简介
Gerrit 是建立在 git 版本控制系统之上的,基于 web 的代码审核工具。
二、环境准备
1. Git 配置
git config --global core.filemode false
用于全局配置 Git 忽略文件权限(可执行位)变化的命令
git config --global user.name "XXX"
git config --global user.email "XXX@XX"
设置了 Git 提交记录中显示的用户名和邮箱。每次提交代码时,Git 会将这些信息嵌入提交对象,用于追踪代码修改的负责人。
2. SSH配置
Gen ssh rsa keys(一直按回车)
ssh-keygen -t rsa
3. 将公钥加入Gerrit
cat $HOME/.ssh/id_rsa.pub
将整段复制贴上
4. 配置连线
vim $HOME/.ssh/config
输入
Host *
TCPKeepAlive yes
ServerAliveInterval 300
ServerAliveCountMax 5
StrictHostKeyChecking no
PubkeyAcceptedKeyTypes +ssh-rsa
Host localhost (根据实际参数配置)
Hostname localhost (根据实际参数配置)
User XXX (xxx为个人账号)
Port 29418
5. 验证连线
ssh -p 29418 localhost
三、图解git仓库
在讲具体的命令之前,我们需要先看张图,理解了这张图,对于理解后面的命令会有帮助。
主要分三部分:远程仓库(remote),本地仓库(repository)和工作区(workspace)。本地仓库和工作区之间还有一个暂存区(index)。
-
远程仓库(remote)
托管在网络服务器上的代码仓库。
-
本地仓库(repository)
存储在开发者本地计算机中的仓库,包含项目的完整提交历史和版本信息。
-
工作区(workspace)
对应的是本地分支代码,是我们平时写代码的地方。
-
暂存区(index)
git add会把内容加到暂存区,暂存区标记了当前工作区中那些内容是被git管理的。
-
四者关系与数据流
-
工作区 → 暂存区:通过
git add
将修改加入暂存区。 -
暂存区 → 本地仓库:通过
git commit
生成永久版本记录。 -
本地仓库 ↔ 远程仓库:通过
git push
和git pull
实现同步。
流程图简化:
工作区 (编辑文件) → git add → 暂存区 → git commit → 本地仓库 → git push → 远程仓库
四、常用git指令
-
git status
查看当前仓库状态,显示未跟踪/已修改的文件,以及暂存区与本地仓库的差异。
工作区未有修改文件时:
工作区有修改文件时:
-
git add
将工作区的文件修改标记为准备提交(添加到暂存区)。支持git add .
(添加所有文件)或git add <文件名>
(添加特定文件)。
将工作区文件添加到暂存区,再查看当前工作区状态:
-
git commit
将暂存区的修改永久保存到本地仓库,生成唯一提交记录。
[project] 项目名
[Field] 领域
[Module] 模块
[BUG ID] 对应的bug单号
[Description] 修改说明
[Test] 测试建议
-
git push
将本地仓库的提交记录同步到远程仓库。需指定远程仓库名和分支:git push origin HEAD:refs/for/xxx
-
git log
查看当前分支的提交历史记录,显示提交者、时间及说明。
六、工作流程
-
编写代码
-
git status
查看 -
git add
暂存 -
git commit
提交 -
推送到gerrit服务器
-
审核人员在web页面进行代码的审核(review),也可叫做加分
-
审核通过
-
提交到代码仓库中(merge)