全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-11 6 分钟 ✍️ juanwangdev

手动解决冲突

手动解决冲突是最直接的方式,直接编辑冲突文件选择保留的内容。

解决冲突步骤

Bash
1. 查看冲突文件
2. 打开文件,找到冲突标记
3. 编辑文件,保留正确内容
4. 删除冲突标记
5. 保存文件
6. git add 标记已解决
7. git commit 完成合并

详细操作流程

步骤1:查看冲突

Bash
git status

# 输出
Unmerged paths:
        both modified:   src/main.go

步骤2:打开冲突文件

Go
# 使用编辑器打开
vim src/main.go
code src/main.go

步骤3:查看冲突内容

Go
func login() {
<<<<<<< HEAD
    console.log("Login from main");
=======
    console.log("Login from feature");
>>>>>>> feature
}

步骤4:编辑解决

Bash
// 选择需要的版本,删除标记
func login() {
    console.log("Login from feature");
}

步骤5:标记已解决

Bash
# 添加已解决的文件
git add src/main.go

# 查看状态确认
git status

步骤6:完成合并

Bash
# 所有冲突解决后提交
git commit

# 或指定提交信息
git commit -m "解决合并冲突"

解决策略选择

策略适用场景
保留 HEAD当前分支的修改更正确
保留合入分支合入分支的修改更正确
合并两者两个修改都需要保留
完全重写两边都有问题,重新编写

使用 Git 命令快速选择

Bash
# 接受当前分支版本(ours)
git checkout --ours src/main.go

# 接受合入分支版本( theirs)
git checkout -- theirs src/main.go

# 仍需 git add 标记
git add src/main.go

解决删除冲突

Bash
# 一方删除,一方修改
# 如果决定保留文件
git add src/file.go

# 如果决定删除文件
git rm src/file.go

解决多处冲突

Bash
# 一个文件多处冲突,逐个解决
# 或使用 mergetool
git mergetool

# 或使用图形化编辑器
# VSCode、IDEA 都有冲突高亮功能

验证解决结果

text
# 确认没有冲突标记
grep -r "<<<<<<< HEAD" .

# 无输出表示已解决

# 查看状态确认
git status
# 输出应无 "Unmerged paths"

解决所有冲突后再 commit,否则 Git 会提示还有未解决的冲突。

要点总结

  1. 编辑冲突文件,删除标记,保留正确内容
  2. git checkout --ours/-- theirs 快速选择版本
  3. git add 标记文件已解决
  4. 删除冲突用 git rm
  5. 所有冲突解决后 git commit

📝 发现内容有误?点击此处直接编辑

← 上一篇 合并冲突产生原因
下一篇 → 识别冲突文件
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库