Git解决合并冲突
冲突标记含义
冲突文件中会出现以下标记:
<<<<<<< HEAD
当前分支的内容
=======
要合并分支的内容
>>>>>>> feature-branch
<<<<<<< 到 ======= 之间是当前分支的内容,======= 到 >>>>>>> 之间是要合入的内容。
解决方式一:手动编辑
1. 打开冲突文件
2. 找到冲突标记
3. 保留需要的代码,删除不需要的
4. 删除冲突标记(<<<<<<<、=======、>>>>>>>)
5. 保存文件
6. git add 文件名
7. git commit
解决方式二:选择一方
①
`
git checkout --ours 文件名
git checkout --theirs 文件名
`
--ours保留当前分支版本,--theirs保留合入分支版本解决方式三:使用合并工具
git mergetool
会打开配置的图形化合并工具,更直观地解决冲突。
放弃合并
git merge --abort
回到合并前的状态。
预防冲突
- 频繁拉取远程更新
- 保持分支小而专注
- 及时沟通哪些文件在修改
常见问题
冲突后不敢操作? 可以先用 git merge --abort 放弃,查阅文档后再试。
多人同时改同一文件? 沟通好分工,避免同时修改同一区域。
相关路径:继续阅读以下页面可完成下载、安装和使用配置。
常见问题
看到冲突标记后第一步做什么?
先不要提交,打开冲突文件理解 HEAD 和传入分支分别代表什么,再决定保留哪部分内容。
解决冲突后为什么还要 git add?
git add 用来告诉 Git 冲突已经处理完成,随后才能继续 merge commit 或 rebase。
冲突太多可以放弃吗?
可以。merge 用 git merge --abort,rebase 用 git rebase --abort,回到操作前状态。