手动解决合并冲突
学习手动识别和解决集成不同分支时产生的合并冲突。
手动解决合并冲突 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
理解合并冲突
欢迎来到合并冲突的世界!不用担心,合并冲突是使用 Git 协作时很正常的一部分。当 Git 无法自动确定如何组合两个不同分支的更改时,就会发生合并冲突。
这种情况通常发生在两个分支以不同方式修改同一文件中的相同行时,也可能发生在一个分支删除了某个文件,而另一个分支修改了该文件时。
冲突为何产生
Git 在自动合并大多数更改方面非常智能。不过,遇到含义不明确的情况时,它需要人工协助。以下是一些常见场景:
- 同一行,不同更改:两个人以不同方式编辑了完全相同的代码行。
- 一方删除,另一方修改:一个分支删除了某个文件,而另一个分支修改了该文件。
- 重命名与修改:一个分支重命名了某个文件,而另一个分支修改了该文件。
使用 Git 检测冲突
发生合并冲突时,Git 不会自动完成合并。相反,它会暂停该过程,并告诉您哪些文件存在冲突。您会看到类似这样的消息:
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.使用 `git status` 处理冲突
自动合并失败后,您的仓库会处于“正在合并”状态。您可以使用 git status 查看哪些文件存在冲突。这些文件会列在“未合并路径”中。
git status解读冲突标记
Git 会直接在存在冲突的文件中插入特殊标记,向您显示问题所在。这些标记可以帮助您识别不同版本的代码:
<<<<<<< HEAD:标记当前分支更改的开始位置。=======:分隔两个分支的更改。>>>>>>> branch-name:标记传入分支更改的结束位置。
查看存在冲突的文件
让我们来看一个示例。假设您有一个文件 hello.txt。您的 main 分支将其修改为“Hello from main”,而一个 feature 分支将同一行修改为“Greetings from feature”。将 feature 合并到 main 时,该文件会如下所示:
<<<<<<< HEAD
Hello from main
=======
Greetings from feature
>>>>>>> feature手动解决冲突
您需要在文本编辑器中打开存在冲突的文件(例如 hello.txt)。然后手动编辑该文件,删除冲突标记并选择所需内容。您可以组合不同部分、选择其中一个版本,或完全重新编写内容。
对于 hello.txt 示例,如果我们希望保留两条消息,可以将其编辑为:
Hello from main and Greetings from feature!暂存已解决的更改
手动编辑文件并删除所有冲突标记后,需要告诉 Git 您已经解决了冲突。您可以使用 git add 暂存该文件。
对 git status 列出的每个“未合并路径”重复此操作。
git add hello.txt完成合并提交
所有存在冲突的文件都已暂存后,就可以提交合并了。Git 通常会提供默认的合并提交消息,您可以接受或修改该消息。这个最终提交会完成合并过程。
git commit -m "Merged feature branch, resolved conflict in hello.txt"冲突解决检查
您已成功解决合并冲突。现在,让我们测试一下您对手动编辑存在冲突的文件后下一个关键步骤的理解。
回顾:手动解决冲突
您已经学会了如何手动解决合并冲突!这是每位开发者都必须掌握的基础技能。
- 当 Git 无法自动合并更改时,就会发生冲突。
git status会显示尚未合并的文件。- 冲突标记(
<<<<<<<、=======、>>>>>>>)会显示存在差异的代码。 - 手动编辑文件,删除标记,并选择最终内容。
- 使用
git add暂存已解决冲突的文件。 - 使用
git commit完成合并。
熟能生巧!冲突起初可能令人畏惧,但按照这些步骤操作,您就能熟练掌握解决冲突的方法。
常见问题解答
「手动解决合并冲突」课时是免费的吗?
是的 — 「手动解决合并冲突」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「手动解决合并冲突」这节课中我会学到什么?
学习手动识别和解决集成不同分支时产生的合并冲突。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「手动解决合并冲突」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。