diff --git a/Lab5/git_conflict_cause.png b/Lab5/git_conflict_cause.png new file mode 100644 index 0000000..c54feab Binary files /dev/null and b/Lab5/git_conflict_cause.png differ diff --git a/Lab5/git_conflict_list.png b/Lab5/git_conflict_list.png new file mode 100644 index 0000000..3bc05ab Binary files /dev/null and b/Lab5/git_conflict_list.png differ diff --git a/Lab5/git_conflict_merge.png b/Lab5/git_conflict_merge.png new file mode 100644 index 0000000..a271830 Binary files /dev/null and b/Lab5/git_conflict_merge.png differ diff --git a/Lab5/git_merge_icons.png b/Lab5/git_merge_icons.png new file mode 100644 index 0000000..10dd18c Binary files /dev/null and b/Lab5/git_merge_icons.png differ diff --git a/Lab5/git_tip_conflict.png b/Lab5/git_tip_conflict.png new file mode 100644 index 0000000..36aeef5 Binary files /dev/null and b/Lab5/git_tip_conflict.png differ diff --git a/Lab5/lab5.md b/Lab5/lab5.md new file mode 100644 index 0000000..f86c113 --- /dev/null +++ b/Lab5/lab5.md @@ -0,0 +1,40 @@ +# 解决冲突 +## 文件冲突原因 +在进行合并、摘取和变基操作时,不可避免的会遇到更改发生冲突,需要先解决冲突,然后才能继续。 +![](./git_tip_conflict.png) +产生冲突的原因很简单: +从同一个节点衍生出两个版本A和B, 在相同的位置,A版本改成某个值,B版本改成另个值,然后把B合并到A上,这时git就会触发冲突,两个版本的优先级是相同的,git不知道该采用哪个值,所以就需要人工干预。 +![](./git_conflict_cause.png) + +## 冲突界面介绍 +右键TortoiseGit,选择解决冲突,就会弹出冲突列表。 +![](./git_conflict_list.png) +双击列表中的文件,打开合并窗口。 +![](./git_conflict_merge.png) +### 文本框 +合并窗口有三个文本框: +- 左上角是要导入的版本 +- 右上角是当前的版本 +- 下方是合并后的版本 + +要注意的是,只有下方的文本框可以编辑,上面两个都是只读的。 +文本框的左边会有一些小图标,它们代表对应行所做更改的操作类型。 +![](./git_merge_icons.png) +### 工具栏 +常用的几个操作: +- 标记为已解决:在该文档的所有冲突解决完后点击,会在冲突文件列表中删除该文件。 +- 上/下一处冲突:快速定位冲突。 +- 使用左侧文本块:用于快速采纳更改,下面有个三角,可以选择“使用右侧文本块”。 + +## 详细操作 +1. 在冲突列表打开冲突文件。 +2. 找到下文本框左侧的叹号,该行表示尚未解决的冲突。 +3. 然后再看上方两文本框的相同位置。 + - “=”代表该版本的修改前的文本; + - “+”代表新增或者修改后的文本; + - “-”代表删除该行; +4. 然后根据实际情况选择左边或者右边,亦或者两个都不满足,直接在下文本框编辑。 +5. 用“上/下一处冲突”切换到下一处冲突编辑。 +6. 全部修改完后,点击“标记为已解决”,然后再保存退出。 +7. 处理剩下的冲突文件。 +8. 测试、提交、推送。 \ No newline at end of file diff --git a/readme.md b/readme.md index 2e66b68..aa5f424 100644 --- a/readme.md +++ b/readme.md @@ -14,4 +14,5 @@ http://172.188.24.12:3000/ 1. [创建、修改、暂存和提交](./Lab1/lab1.md) 2. [推送、拉取、克隆](./Lab2/Lab2.md) 3. [分支管理](./Lab3/lab3.md) -4. [基线和定制版本同步更改](./Lab4/lab4.md) \ No newline at end of file +4. [基线和定制版本同步更改](./Lab4/lab4.md) +5. [解决冲突](./Lab5/lab5.md) \ No newline at end of file