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

你需要:

  1. 删除 <<<<<<< HEAD=======>>>>>>> origin/main 这些标记
  2. 保留你需要的代码(可以选本地、选远程,或手动合并两者)
  3. 保存文件
标记冲突已解决

解决完一个文件后,用 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。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐