Files
gerrit/Gerrit快速使用指南.md
2025-12-22 17:12:39 +08:00

332 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Gerrit 快速使用指南
## 🎉 恭喜Gerrit 已成功安装并运行
您的 Gerrit 访问地址:**http://101.43.95.130:8080**
---
## 第一步:创建管理员账户
### 1. 登录 Gerrit
1. 打开浏览器,访问:`http://101.43.95.130:8080`
2. 点击右上角的 **"Sign In"** 按钮
3. 在登录页面,输入任意用户名(例如:`admin`
4. 点击 **"Sign In"**
**重要**:由于配置了开发模式(`DEVELOPMENT_BECOME_ANY_ACCOUNT`),您可以使用任意用户名登录,无需密码。
### 2. 验证管理员权限
登录后,点击右上角用户名 → **"Settings"** → 左侧菜单应该显示 **"Administration"** 选项,说明您已经是管理员了。
---
## 第二步:创建第一个项目
### 方法一:通过 Web 界面创建(推荐)
1. 登录后,点击顶部菜单 **"Projects"** → **"Create Project"**
2. 填写项目信息:
- **Project Name**: `my-project`(例如)
- **Parent**: `All-Projects`(默认)
- **Description**: 项目描述(可选)
- **Submit Type**: `Merge If Necessary`(推荐)
- **Create initial empty commit**: ✅ 勾选(推荐)
3. 点击 **"Create Project"**
### 方法二:通过命令行创建
```bash
# 使用 SSH 连接 Gerrit
ssh -p 29418 admin@101.43.95.130 gerrit create-project my-project
```
---
## 第三步:配置本地 Git
### 1. 配置 Git 用户信息
```bash
# 设置全局用户信息
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 配置 Gerrit 服务器(替换 admin 为您的用户名)
git config --global review.101.43.95.130:29418.username admin
```
### 2. 克隆项目
```bash
# 方式一:通过 SSH推荐
git clone ssh://admin@101.43.95.130:29418/my-project
# 方式二:通过 HTTP
git clone http://101.43.95.130:8080/my-project
```
如果使用 HTTP首次克隆时可能需要输入用户名密码留空开发模式不需要密码
---
## 第四步:开发提交流程
### 1. 创建开发分支并修改代码
```bash
# 进入项目目录
cd my-project
# 创建特性分支
git checkout -b feature/new-feature
# 进行代码修改
echo "# My Project" > README.md
git add README.md
# 提交更改
git commit -m "Add README file"
```
### 2. 推送到 Gerrit 进行评审
**关键**:推送到 `refs/for/master` 分支(不是直接推送到 `master`
```bash
# 推送到评审队列
git push origin HEAD:refs/for/master
```
**推送成功后的输出示例**
```
remote: Resolving deltas: 100% (1/1)
remote: Processing changes: refs: 1, new: 1
remote:
remote: SUCCESS
remote:
remote: http://101.43.95.130:8080/c/my-project/+/1 [NEW]
remote:
To ssh://admin@101.43.95.130:29418/my-project
* [new branch] HEAD -> refs/for/master
```
### 3. 查看变更
复制 Gerrit 返回的 URL例如`http://101.43.95.130:8080/c/my-project/+/1`),在浏览器中打开查看变更详情。
---
## 第五步:代码评审与合并
### 1. 在 Web 界面进行评审
1. **查看变更详情**
- 点击 Change 进入详情页
- 查看文件差异Diff
- 查看提交信息
2. **添加评论**
- 在代码行上点击,添加行内评论
- 在页面底部添加整体评论
3. **评审投票**
- **Code-Review**:
- `+2` = 批准合并
- `+1` = 看起来不错,但需要其他人批准
- `-1` = 需要修改
- `-2` = 拒绝
- **Verified**:
- `+1` = 验证通过
- `-1` = 验证失败
4. **合并变更**
- 当满足以下条件时,变更可以自动合并:
- Code-Review: +2
- Verified: +1如果启用了 Verified 标签)
- 或者管理员可以手动点击 **"Submit"** 按钮合并
### 2. 修改代码后重新推送
如果需要根据评审意见修改代码:
```bash
# 修改代码后,追加提交(会自动关联到同一个 Change
git add .
git commit --amend # 修改最后一次提交
git push origin HEAD:refs/for/master
```
### 3. 合并后的操作
```bash
# 更新本地仓库
cd my-project
git checkout master
git pull origin master
# 删除已合并的特性分支
git branch -d feature/new-feature
```
---
## 常用操作
### 跳过评审直接推送(个人使用)
如果只是个人使用,可以配置直接推送:
```bash
# 方法一:推送到 refs/heads/master绕过评审
git push origin HEAD:refs/heads/master
# 方法二:配置项目权限,允许直接推送
# 在 Gerrit Web 界面:
# Projects → my-project → Access → Edit
# 添加权限:
# Reference: refs/heads/*
# Push: 允许您的用户组
```
### 查看所有项目
```bash
# 通过 SSH
ssh -p 29418 admin@101.43.95.130 gerrit ls-projects
# 在 Web 界面
访问http://101.43.95.130:8080/#/admin/projects/
```
### 查看变更列表
```bash
# 通过 SSH
ssh -p 29418 admin@101.43.95.130 gerrit query --format=JSON change:1
# 在 Web 界面
访问http://101.43.95.130:8080/#/q/status:open
```
---
## 服务管理命令
```bash
# 进入 Gerrit 目录
cd ~/gerrit_install/review_site
# 启动服务
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 bin/gerrit.sh start
# 停止服务
bin/gerrit.sh stop
# 重启服务
bin/gerrit.sh restart
# 查看状态
bin/gerrit.sh status
# 查看日志
tail -f logs/gerrit.log
tail -f logs/error_log
```
---
## 常见问题
### 1. 无法访问 Web 界面
**检查项**
- 服务是否运行:`cd ~/gerrit_install/review_site && bin/gerrit.sh status`
- 端口是否被占用:`netstat -tlnp | grep 8080`
- 防火墙是否开放端口:
```bash
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
```
### 2. SSH 连接失败
**检查项**
- SSH 服务是否运行:检查 Gerrit 日志
- 端口是否正确:默认 29418
- 用户权限:确保用户已注册
### 3. 推送失败
**常见错误**
- `Permission denied`: 检查项目权限配置
- `Branch refs/for/master not found`: 确保推送到 `refs/for/master` 而不是 `master`
- `Authentication failed`: 检查 SSH 密钥或 HTTP 认证配置
### 4. 忘记管理员账户
在开发模式下,第一个登录的用户自动成为管理员。如果需要添加其他管理员:
```bash
ssh -p 29418 admin@101.43.95.130 gerrit set-members --add username Administrators
```
---
## 下一步建议
1. ✅ **创建项目**:创建您的第一个项目仓库
2. ✅ **配置 Git**:在本地配置 Git 用户信息
3. ✅ **推送代码**:尝试推送代码进行评审
4. 📧 **配置邮件通知**(可选):如果需要邮件通知功能
5. 🔒 **设置项目权限**:根据需求配置项目访问权限
6. 📦 **安装插件**:根据需要安装常用插件
---
## 快速参考
### Git 命令速查
```bash
# 推送代码评审
git push origin HEAD:refs/for/master
# 直接推送(跳过评审)
git push origin HEAD:refs/heads/master
# 修改提交后重新推送
git commit --amend
git push origin HEAD:refs/for/master
# 查看远程分支
git ls-remote origin
```
### Gerrit 命令行工具
```bash
# 创建项目
ssh -p 29418 admin@101.43.95.130 gerrit create-project project-name
# 查看项目列表
ssh -p 29418 admin@101.43.95.130 gerrit ls-projects
# 查看变更
ssh -p 29418 admin@101.43.95.130 gerrit query --format=JSON change:1
```
---
## 需要帮助?
- 📖 查看完整安装指南:`Gerrit安装使用指南.md`
- 🌐 访问 Gerrit 官方文档https://www.gerritcodereview.com/
- 📝 查看配置文件:`~/gerrit_install/review_site/etc/gerrit.config`
祝您使用愉快!🎉