Git 面试题 目录

Git 中什么是冲突?

推荐答案

在 Git 中,冲突(Conflict)是指当两个分支对同一文件的同一部分进行了不同的修改,并且 Git 无法自动合并这些修改时发生的情况。冲突通常发生在合并(merge)或变基(rebase)操作中。

本题详细解读

什么是冲突?

冲突是 Git 在合并或变基操作中无法自动解决代码差异时产生的一种状态。当两个分支对同一文件的同一部分进行了不同的修改,Git 无法确定应该保留哪个修改,因此需要手动解决冲突。

冲突的产生场景

  1. 合并冲突:当你在一个分支上执行 git merge 命令时,如果当前分支和目标分支对同一文件的同一部分进行了不同的修改,Git 会提示冲突。

  2. 变基冲突:当你在一个分支上执行 git rebase 命令时,如果当前分支和要变基的分支对同一文件的同一部分进行了不同的修改,Git 也会提示冲突。

冲突的标识

当冲突发生时,Git 会在冲突的文件中插入特殊的标记来标识冲突的部分。这些标记通常如下所示:

  • <<<<<<< HEAD 表示当前分支的修改开始。
  • ======= 分隔当前分支和目标分支的修改。
  • >>>>>>> branch-name 表示目标分支的修改结束。

解决冲突的步骤

  1. 查找冲突:使用 git status 命令查看哪些文件存在冲突。

  2. 编辑文件:打开冲突的文件,手动选择保留哪些修改,或者进行进一步的修改。

  3. 标记冲突已解决:在解决冲突后,使用 git add <file> 命令将文件标记为已解决。

  4. 完成合并或变基:如果是在合并操作中,使用 git commit 完成合并;如果是在变基操作中,使用 git rebase --continue 继续变基。

示例

假设你在 main 分支上执行 git merge feature,Git 提示冲突:

打开 example.txt 文件,你会看到类似以下内容:

手动编辑文件,选择保留 main 分支的修改,删除冲突标记后保存文件:

然后执行以下命令完成合并:

总结

冲突是 Git 中常见的现象,尤其是在多人协作开发时。理解冲突的产生原因和解决方法,能够帮助你更高效地处理代码合并和变基操作。

纠错
反馈