面向新手的github提交pr(pull-request)流程
·
by:Clarity
由于网络上相关的的文章对新手不太友好,故写了此篇文章,若有不到位的地方还请各位大佬多多包涵。
具体步骤
总体流程
本地merge测试冲突->解决冲突 -> 请求pr -> 发起review(可指定审核人)->
通过之后,发起merge -> merged
1.先切到你的 feature 分支
git checkout feature/login
2.拉取远程仓库 origin 上的所有分支最新代码
把远程最新代码下载到本地,不会自动合并,也不会修改你当前的工作代码。
git fetch origin

- fetch = 下载不合并(安全)
- pull = 下载 + 合并(可能冲突)
3.本地把目标分支合进你的 feature 分支,提前检查冲突
git merge origin/main
示例:

这里可能会有冲突,不用着急。这是两个分支同时改了同一块内容,Git 无法自动决定保留哪一边。
冲突解决方案:
打开冲突文件,手动解决
用编辑器打开后,冲突区域会被 Git 标记成这样:
<<<<<<< HEAD
# 这是你本地修改的内容
=======
# 这是远程仓库的内容
>>>>>>> origin/main
你需要:
- 删除
<<<<<<< HEAD、=======、>>>>>>> origin/main这些标记 - 保留你需要的代码(可以选本地、选远程,或手动合并两者)
- 保存文件
标记冲突已解决
解决完一个文件后,用 git add 告诉 Git 这个文件的冲突已经处理好了:
git add .gitignore
git add Dockerfile git add "docs/Team Interface Contract.md"
git add src/multi_effector_msgs/CMakeLists.txt
git add src/multi_effector_msgs/action/ControlEffector.action
或者直接一次性添加所有:
git add .
4. 完成合并
所有冲突文件都 add 之后,执行:
git commit
5. (可选)放弃合并
如果不想解决冲突,想回到合并前的状态:
git merge --abort
自动解决
自动解决适合二选一的情况(也就是保留仓库的或者保留自己的)
保留仓库的文件
git checkout --theirs <文件名>
示例
保留自己的文件
git checkout --ours <文件名>
逐一解决冲突文件之后,可以看到待提交文件全变绿了。
然后就可以愉快的提交咯
添加所有:
git add .
完成合并
所有冲突文件都 add 之后,执行:
git commit -m"此处输入描述信息(具体参考提交规范)"
3.在github请求pr

请求之后,可以在pr界面找到review,选择指定的审核者。
review之后,即可merge。
更多推荐
所有评论(0)