冲突标记解析
Git 在冲突文件中使用特殊标记分隔不同版本的代码,便于手动解决。
冲突标记格式
Go
<<<<<<< HEAD
当前分支(HEAD)的内容
=======
要合并分支的内容
>>>>>>> branch-name
标记含义
| 标记 | 说明 |
|---|---|
| <<<<<<< HEAD | 冲突开始,以下是当前分支内容 |
| ======= | 分隔线,分隔两个版本 |
| >>>>>>> branch | 冲突结束,以上是合入分支内容 |
冲突示例
Go
// 冲突文件内容
func getMessage() string {
<<<<<<< HEAD
return "Hello from main"
=======
return "Hello from feature"
>>>>>>> feature
}
解析:
- HEAD 版本:
return "Hello from main" - feature 版本:
return "Hello from feature"
多处冲突
Bash
// 一个文件可能有多处冲突
func getTitle() string {
<<<<<<< HEAD
return "Main Title"
=======
return "Feature Title"
>>>>>>> feature
}
func getContent() string {
<<<<<<< HEAD
return "Main Content"
=======
return "Feature Content"
>>>>>>> feature
}
解决冲突的方法
Go
# 选项1:保留 HEAD 版本
<<<<<<< HEAD
return "Hello from main"
=======
return "Hello from feature"
>>>>>>> feature
# 解决后
return "Hello from main"
# 选项2:保留合入版本
return "Hello from feature"
# 选项3:合并两者
return "Hello from main and feature"
# 选项4:完全重写
return "New Content"
解决后的文件
解决冲突后:
- 删除所有冲突标记(<<<<<<<, =======, >>>>>>>)
- 保留需要的代码内容
- 确保代码语法正确
Bash
// 解决后的正确代码
func getMessage() string {
return "Hello from main"
}
特殊冲突情况
删除冲突标记
Bash
# 一方删除内容,另一方修改
<<<<<<< HEAD
======= # HEAD 版本为空(删除了)
new code here
>>>>>>> feature
新增冲突
text
# 双方都在同一位置新增不同内容
<<<<<<< HEAD
new line A
=======
new line B
>>>>>>> feature
解决冲突必须删除所有标记,只保留最终需要的代码。
要点总结
<<<<<<< HEAD到=======是当前分支内容=======到>>>>>>> branch是合入分支内容- 一个文件可能有多处冲突
- 解决时删除标记,保留正确代码
- 确保解决后代码语法正确
📝 发现内容有误?点击此处直接编辑