Git 合并分支时为什么会冲突,怎么解决? 玉鑫 提问于 2026-03-20 20:13:19 阅读 49 工具 我从 main 切了个新分支改了个按钮样式,同事也在 main 上改了同一个文件,现在我切回 main 执行 git merge 时报冲突了,一脸懵。 我本地改的代码其实很简单,就加了个 class: <button class="btn-primary"> 提交 </button> 但合并时 Git 提示这个文件有冲突,还出现了 <<<<<< HEAD 这种标记,不知道该保留哪边的代码,也不敢乱删……有没有人遇到过类似情况? 我来解答 赞 11 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 妍妍 Dev Lv1 遇到这种情况挺常见的,尤其是当多个开发者同时修改同一个文件的不同部分时。Git 会标记出冲突的部分,让你手动决定怎么处理。你提到的情况就是典型的例子。 Git 在冲突的地方会插入一些标记,比如 <<<<<<< HEAD 和 ======= 来告诉你哪些部分是冲突的。HEAD 代表的是你当前所在的分支(这里是 main),而 ======= 之后的部分则是你尝试合并进来的分支的内容。 假设你的改动是这样的: <button class="btn-primary"> 提交 </button> 而同事的改动可能是: <button class="btn-success"> 提交 </button> 那么合并时,Git 会在文件中插入类似这样的标记: <<<<<<< HEAD <button class="btn-primary"> ======= <button class="btn-success"> >>>>>>> 分支名 提交 </button> 你需要手动编辑这个文件,选择保留哪一部分或者合并两者。比如你可以这样修改: <button class="btn-primary btn-success"> 提交 </button> 或者如果你确定只需要保留自己的改动,那就删掉其他标记和同事的代码部分: <button class="btn-primary"> 提交 </button> 改完之后,记得保存文件,然后告诉 Git 冲突已经解决: git add 文件名 git commit 这样就完成了合并。记住,解决冲突是个需要耐心的过程,慢慢来,多检查几次,确保改动符合预期。 回复 点赞 2026-03-20 21:09 加载更多 相关推荐 2 回答 58 浏览 GitHub合并分支时冲突怎么解决总是报错? 我在本地用git merge feature-branch合并分支时,有个文件冲突改完后还是报错error: couldn't open 'path/to/file': No such file。已经... UI子赫 前端 2026-02-15 20:21:24 2 回答 119 浏览 Git合并时冲突标记的内容被覆盖了怎么办? 今天合并分支时遇到冲突,用git merge --abort回退后,发现原来冲突标记里的内容还是被覆盖了! 比如在style.css里有段代码:.container { padding: 20px; ... 雅雯酱~ 工具 2026-02-16 01:31:25 2 回答 115 浏览 Git合并分支后CSS样式被覆盖怎么办? 最近团队用Git Flow协作时,我合并了一个feature分支到develop,发现某个组件的CSS样式被意外覆盖了。比如原本在.header里设置了background: #333;,但合并后变成... 景岩 Dev 前端 2026-02-05 14:03:39 2 回答 168 浏览 Git rebase后提交历史被抹掉了,怎么恢复? 今天在合并分支时用了git rebase main,解决冲突后提交了,结果发现之前的提交历史全没了,只剩最后那次合并的记录。我明明记得要保留分支历史才用的rebase,现在该怎么把中间的几个提交找回来... FSD-闪闪 工具 2026-01-28 14:40:32 2 回答 151 浏览 GitHub Flow中如何处理分支合并后本地未更新的代码? 我在用GitHub Flow开发新功能时遇到问题,合并到main分支后本地代码没更新。比如我改了这个函数: // 旧版本(本地) function greet() { console.log('v1'... IT人淑宁 工具 2026-02-02 05:25:26 1 回答 60 浏览 Git worktree 切换分支后为什么页面样式错乱了? 我用 git worktree add 创建了一个新工作区来同时开发两个功能分支,但切换到新 worktree 后,本地启动的开发服务器渲染出来的页面样式全乱了,控制台也没报错。 明明代码逻辑没动,只... 司马子晴 工具 2026-03-25 20:59:20 1 回答 77 浏览 git revert 撤销提交后为什么又出现冲突了? 我用 git revert HEAD 想撤销最新的提交,结果提示有冲突,明明这个提交是我自己刚改的,也没人动过代码啊? 之前试过 git reset --hard HEAD~1 能回退,但因为已经 p... 喧丹🍀 工具 2026-03-25 12:18:18 1 回答 71 浏览 Git 切换分支时提示有未提交的更改怎么办? 我正在开发一个新功能,刚改了几行代码还没 commit,想切回 main 分支看个东西,结果 Git 报错不让切,说本地有修改会覆盖。 我试过 git stash 但好像没生效,还是切不过去,现在卡在... 清梅的笔记 工具 2026-03-21 17:11:22 1 回答 55 浏览 git stash后切分支,再切回来代码没了怎么办? 我刚才在 dev 分支上改了一半代码,临时要用 main 分支跑个 demo,就用了 git stash 把改动存起来。结果切到 main 跑完,再切回 dev,发现之前 stash 的内容找不到了!... UX福萍 工具 2026-03-20 16:52:23 2 回答 60 浏览 GitHub Actions部署时怎么指定分支? 我用 GitHub Actions 自动部署静态网站,但每次 push 到 main 分支都会触发部署,我想改成只在 deploy 分支推送时才部署。改了 workflow 文件里的 on: push... 宇文佼佼 工具 2026-03-04 13:23:24
Git 在冲突的地方会插入一些标记,比如
<<<<<<< HEAD和=======来告诉你哪些部分是冲突的。HEAD代表的是你当前所在的分支(这里是main),而=======之后的部分则是你尝试合并进来的分支的内容。假设你的改动是这样的:
而同事的改动可能是:
那么合并时,Git 会在文件中插入类似这样的标记:
你需要手动编辑这个文件,选择保留哪一部分或者合并两者。比如你可以这样修改:
或者如果你确定只需要保留自己的改动,那就删掉其他标记和同事的代码部分:
改完之后,记得保存文件,然后告诉 Git 冲突已经解决:
这样就完成了合并。记住,解决冲突是个需要耐心的过程,慢慢来,多检查几次,确保改动符合预期。