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