40 lines
2.0 KiB
Markdown
40 lines
2.0 KiB
Markdown
# 解决冲突
|
||
## 文件冲突原因
|
||
在进行合并、摘取和变基操作时,不可避免的会遇到更改发生冲突,需要先解决冲突,然后才能继续。
|
||

|
||
产生冲突的原因很简单:
|
||
从同一个节点衍生出两个版本A和B, 在相同的位置,A版本改成某个值,B版本改成另个值,然后把B合并到A上,这时git就会触发冲突,两个版本的优先级是相同的,git不知道该采用哪个值,所以就需要人工干预。
|
||

|
||
|
||
## 冲突界面介绍
|
||
右键TortoiseGit,选择解决冲突,就会弹出冲突列表。
|
||

|
||
双击列表中的文件,打开合并窗口。
|
||

|
||
### 文本框
|
||
合并窗口有三个文本框:
|
||
- 左上角是要导入的版本
|
||
- 右上角是当前的版本
|
||
- 下方是合并后的版本
|
||
|
||
要注意的是,只有下方的文本框可以编辑,上面两个都是只读的。
|
||
文本框的左边会有一些小图标,它们代表对应行所做更改的操作类型。
|
||

|
||
### 工具栏
|
||
常用的几个操作:
|
||
- 标记为已解决:在该文档的所有冲突解决完后点击,会在冲突文件列表中删除该文件。
|
||
- 上/下一处冲突:快速定位冲突。
|
||
- 使用左侧文本块:用于快速采纳更改,下面有个三角,可以选择“使用右侧文本块”。
|
||
|
||
## 详细操作
|
||
1. 在冲突列表打开冲突文件。
|
||
2. 找到下文本框左侧的叹号,该行表示尚未解决的冲突。
|
||
3. 然后再看上方两文本框的相同位置。
|
||
- “=”代表该版本的修改前的文本;
|
||
- “+”代表新增或者修改后的文本;
|
||
- “-”代表删除该行;
|
||
4. 然后根据实际情况选择左边或者右边,亦或者两个都不满足,直接在下文本框编辑。
|
||
5. 用“上/下一处冲突”切换到下一处冲突编辑。
|
||
6. 全部修改完后,点击“标记为已解决”,然后再保存退出。
|
||
7. 处理剩下的冲突文件。
|
||
8. 测试、提交、推送。 |