first commit
This commit is contained in:
331
Gerrit快速使用指南.md
Normal file
331
Gerrit快速使用指南.md
Normal file
@@ -0,0 +1,331 @@
|
||||
# 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`
|
||||
|
||||
祝您使用愉快!🎉
|
||||
|
||||
|
||||
Reference in New Issue
Block a user