Git PR 操作教程
概述
本文档基于实际问答整理,涵盖Git PR(Pull Request)的完整操作流程,包括分支管理、PR创建、合并和清理等步骤。
1. PR流程基础
1.1 什么是"安全删除分支"
当GitHub提示"可以安全删除分支"时,意味着:
- PR已经成功合并到main分支
- 分支使命完成,代码更改已保留
- 删除分支不会丢失任何代码或提交历史
1.2 删除分支的两种方式
通过GitHub Web界面删除(推荐)
- 在PR页面点击"Delete branch"按钮
- 最简单的方式,GitHub会自动处理
通过命令行删除
# 切换到main分支
git checkout main
# 拉取最新更改
git pull origin main
# 删除本地分支
git branch -d your-branch-name
# 删除远程分支
git push origin --delete your-branch-name
2. 分支删除后的本地状态
2.1 现象说明
在GitHub上删除分支后,本地Git Graph仍显示该分支标签的原因:
- 本地Git保留着对远程分支的引用
- Git缓存远程分支信息以提高性能
- 分支的提交历史仍然存在于本地仓库中
2.2 是否有影响
通常没有负面影响,但建议清理:
可能的影响:
- 视觉混乱:Git Graph界面显示过时的分支标签
- 命令提示:
git branch -r显示已删除的远程分支 - 存储空间:占用少量本地存储空间
不会影响:
- ✅ 代码功能
- ✅ 当前开发工作
- ✅ 与远程仓库的同步
2.3 清理本地引用
# 方法1:自动清理(推荐)
git remote prune origin
# 方法2:fetch时自动清理
git fetch --prune
# 方法3:一次性清理所有过时引用
git fetch --prune --all
3. 命令行PR操作
3.1 完整PR流程
准备工作
# 确保在main分支并拉取最新代码
git checkout main
git pull origin main
# 创建并切换到新分支
git checkout -b feature/your-feature-name
开发并提交代码
# 进行代码修改...
# 添加文件到暂存区
git add .
# 提交更改
git commit -m "feat: 添加新功能描述"
# 推送到远程分支
git push origin feature/your-feature-name
创建PR(使用GitHub CLI)
# 安装GitHub CLI
winget install GitHub.cli # Windows
# 登录
gh auth login
# 创建PR
gh pr create
# 或指定参数
gh pr create --title "功能标题" --body "详细描述" --base main
管理PR状态
# 查看PR状态
gh pr status
# 查看PR列表
gh pr list
# 查看特定PR
gh pr view <PR号>
# 检查PR是否可以合并
gh pr checks
更新PR
# 如果有新的提交,推送到同一分支
git add .
git commit -m "fix: 修复问题"
git push origin feature/your-feature-name
# PR会自动更新
合并PR
# 合并PR(需要权限)
gh pr merge <PR号>
# 指定合并方式
gh pr merge <PR号> --squash
gh pr merge <PR号> --merge
gh pr merge <PR号> --rebase
清理分支
# 切换回main分支
git checkout main
git pull origin main
# 删除本地分支
git branch -d feature/your-feature-name
# 删除远程分支
git push origin --delete feature/your-feature-name
# 清理过时的远程引用
git remote prune origin
3.2 常用GitHub CLI命令
# 查看仓库状态
gh repo view
# 查看PR列表
gh pr list --state all
# 查看PR差异
gh pr diff <PR号>
# 添加评论
gh pr comment <PR号> --body "评论内容"
# 请求代码审查
gh pr request-review <PR号> --reviewer username
# 查看PR时间线
gh pr timeline <PR号>
4. 最佳实践
4.1 分支管理
- 立即删除已合并的分支,保持仓库整洁
- 确认PR真正合并成功后再删除
- 与团队约定分支命名规范(如
feature/xxx、bugfix/xxx)
4.2 本地仓库维护
- 定期运行
git remote prune origin - 配置自动清理:
git config --global fetch.prune true - 使用现代IDE工具自动处理清理工作
4.3 注意事项
- 删除分支是不可逆操作,但不会影响已合并的代码
- 如果分支还有未合并的更改,GitHub会警告
- 某些操作需要仓库的写入权限
- 确保使用最新版本的GitHub CLI
5. 总结
通过命令行完成PR流程可以提高开发效率,关键步骤包括:
- 创建功能分支
- 开发并提交代码
- 使用GitHub CLI创建PR
- 管理PR状态和更新
- 合并PR
- 清理分支和本地引用
保持本地仓库整洁和定期清理是良好的开发习惯。
本文使用 mdnice 排版