当前位置: 首页 > news >正文

GIT使用小白(进阶二:冲突解决)

Git 冲突处理策略(最佳实践)

冲突不可怕,关键是:定位冲突 → 分析冲突 → 解决冲突 → 测试 → 提交
只要按下面的步骤走,一次就能干干净净解决。


🔥一、常见冲突出现的场景

  1. git pull / git pull --rebase 时
  2. git rebase某个分支时(最常见)
  3. git merge某个分支时
  4. 多人改了同一个文件的同一段代码

🧭二、遇到冲突时的通用流程


步骤 1:知道哪里冲突了

Git 会告诉你哪些文件冲突:

gitstatus

通常会看到:

both modified: src/foo/bar.cpp

步骤 2:打开冲突文件,看到冲突标记

冲突段长这样:

<<<<<<< HEAD 这是你本地修改的版本 ======= 这是远程(或你 rebase 到的分支)版本 >>>>>>> origin/main

解释:

  • HEAD 区块= 当前分支里的内容
  • 下面区块= 你要 merge 或 rebase 的分支内容

步骤 3:手动选择要保留的内容

你有三种选择:

✔ 方案 1:保留我的(本地)版本

删掉远程区块:

我的代码

✔ 方案 2:保留远程版本(目标分支,如 yellow)

目标分支的代码

✔ 方案 3:合并两个版本(最常见)

手动编辑成你想要的最终样子,例如:

融合后正确的代码

步骤 4:标记冲突解决

编辑完后:

gitadd<冲突文件>

步骤 5:继续操作

如果你在用rebase

gitrebase --continue

如果你在用merge

gitcommit

(如果 Git 自动生成 merge commit message,也可以直接用)


步骤 6:如果你反悔想取消

停止 rebase

gitrebase --abort

停止 merge

gitmerge --abort

🧪三、冲突后必须做的检查

解决冲突后一定要:

  1. 重新编译 / 运行单元测试
  2. 确认逻辑正确
  3. 确认没有漏掉某些人的代码

这一步很重要,因为冲突解决错误比冲突本身更可怕。


🧰四、常见冲突处理技巧(进阶)


⭐ 技巧 1:可视化工具更简单

gitmergetool

可调用:

  • VSCode
  • Meld
  • KDiff3
  • Beyond Compare

VSCode 用户可以直接:

code.

然后在文件中点“Accept Incoming / Accept Current / Both”。


⭐ 技巧 2:你想要全保留 remote(例如 yellow 分支)

这是“保留对方版本”的快捷法:

gitcheckout --theirs.gitadd.gitrebase --continue

或 merge 场景:

gitcheckout --theirs.gitadd.gitcommit

⭐ 技巧 3:你想要全部保留自己的

gitcheckout --ours.gitadd.gitrebase --continue

⭐ 技巧 4:查看冲突发生在谁的提交

gitlog --merge

⭐ 技巧 5:修冲突之后检查差异

gitdiff--cached

确保你 add 后的内容真的正确。


🛡️五、如何减少未来冲突?(最佳实践)

  1. 每次开发前先同步 yellow
gitcheckout yellowgitpullgitcheckout my-featuregitrebase yellow
  1. 提交保持小而清晰
  2. 功能模块化修改,避免多人改同一文件
  3. 经常 push,减少你的变更积累
http://www.cnnetsun.cn/news/18410.html

相关文章:

  • Python + Ursina设计一个有趣的3D小游戏
  • 企业级Spring应用启动失败排查实战
  • GeoJSON.io:零基础地理数据编辑工具完全指南
  • 特斯拉11月在美销量跌至近四年低点,廉价车型未扭转颓势
  • LangChain4j 比 SolonAI 强在哪?弱在哪?
  • CodeQwen1.5微服务开发实战:从架构设计到部署上线的完整指南
  • 从零玩转RT-Thread(20):为什么需要定时器?——定时器的应用场景
  • eino框架结构化输出解析:从混乱文本到精准数据的魔法转换
  • 小爱音箱终极音乐解放方案:XiaoMusic完整使用指南
  • 从零打造专业级Vue滑块控件:vue-slider-component深度实践指南
  • AnuPpuccin主题深度体验:5个技巧让你的Obsidian笔记焕然一新
  • AI一键搞定!Linux安装JDK17的最佳实践
  • Win11Debloat:释放系统潜能,打造专属纯净Windows体验
  • Python Web开发终极指南:用Ludic框架重构你的前端体验
  • F2批量重命名终极指南:从入门到精通的完整解决方案
  • 深蓝词库转换工具的技术架构与应用实践
  • 2025年CLIP模型爆发:从跨模态基座到产业变革的技术革命
  • 腾讯混元图像3.0登顶全球!800亿参数重构AIGC行业格局
  • halcon求区域交集——intersection
  • 如何用5分钟掌握AMD Ryzen处理器深度调试技巧?终极完整教程
  • 终极Nginx Web界面管理指南:从入门到精通的一站式解决方案
  • 收藏!大模型推理核心:从Prefill到KVCache,小白也能懂的底层逻辑
  • PySceneDetect终极指南:零基础实现智能视频场景自动化分割
  • 5分钟搞定Windows应用拦截:效率提升指南
  • 基于VUE的线上签到系统[VUE]-计算机毕业设计源码+LW文档
  • 深度解析vue-slider-component:打造高度定制化的Vue滑块组件
  • Pose-Search终极指南:开启智能人体姿势识别新纪元
  • 基于VUE的文章发布系统[VUE]-计算机毕业设计源码+LW文档
  • BBDown:B站视频下载的终极解决方案
  • Dify企业级实战深度解析 (5)