处理冲突更改
存在这样的情况,两个用户同时编辑相同的文件,当第二个落实至存储库的用户尝试落实更改时,由于冲突,存储库将不允许落实成功。让我们假设 Fred 和 Jane 更改相同的文件来模拟这种情况。
- 在 Fred 的工作空间中,打开其中一个导航视图并编辑 file1.txt。将文本编辑为:
Fred line 1
This is the contents
Fred-update
of file 1.
- Fred 还将对 file2.txt 进行如下更改:
File2 is a (Fred was here again)
small file
with simple text.
- Fred 将他的更改落实到存储库。
- 接下来,Jane 同时对 file1.txt 进行更改。她在该文件末尾添加了以下行:
This is the contents
Fred-update
of file 1.
Jane was at the end
- 最后,Jane 将 file2.txt 更改为如下所示:
File2 is a (Jane was here) small
file
with simple text.
- 当 Jane 完成更改时她对项目进行了同步并发现下列内容出现在“同步视图”中:
- file1.txt 和 file2.txt 都显示了一个红色图标,指示它们具有冲突的更改。必须解决了冲突才能落实文件。单击 file1.txt 并注意 Fred 和 Jane 对文件的两个不同部分进行了更改。在这种情况下,Jane 只需更新文件,Fred 添加的行将被合并到 Jane 的本地文件中。选择 file1.txt 并从上下文菜单中选择更新。
- 接下来,双击 file2.txt 以查看冲突。此时可看到 Jane 和 Fred 都更改了同一行。对于这种冲突,正常的更新不能解决冲突。有三种选择(要使用的命令括在括号中):接受 Fred 的更改(覆盖并更新)、忽略 Fred 的更改(标记为合并)或在比较编辑器中手工合并文件。
- 在本示例中,我们假定 Jane 更新了 file1.txt 和选择了覆盖并更新 file2.txt。运行操作后,冲突就变成了传出更改。Jane 可查看更改并落实它们。