# 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` 祝您使用愉快!🎉