Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

解决源代码管理冲突

检查和解决冲突

如果您和其他用户在不同的沙盒中或在不同的分支上更改了相同的文件,则当您试图提交已修改文件时会显示冲突消息。如有必要,请按照程序 解决冲突 提取冲突标记,比较导致冲突的差异并解决冲突。

要解决冲突,您可以:

  • 使用“比较工具”合并修订版本之间的更改。

  • 决定用一套更改来覆盖另一套更改。

  • 通过编辑文件来进行手动更改。

有关使用“比较工具”来合并更改的详细信息,请参阅 合并文本文件

当您对标记为冲突的文件满意后,就能将冲突标记为已解决并提交文件。

解决冲突

  1. 在当前文件夹浏览器中查找存在冲突的文件。

  2. 检查源代码管理状态栏(SVNGit)中是否有带红色警告符号 的文件,该符号指示存在冲突。

  3. 右键点击存在冲突的文件,然后选择源代码管理 > 查看冲突以比较各个版本。

  4. 检查冲突。会打开一份比较报告,显示冲突文件之间的差异。

    在 SVN 中,比较报告会显示该文件与冲突文件版本之间的差异。

    在 Git™ 中,比较报告会显示您的分支与您要合并到的分支上文件之间的差异。

  5. 使用“比较工具”报告来决定如何解决冲突。

    您可以使用“比较工具”来合并各个修订版本之间的更改,该方法在 合并文本文件 中有说明。

  6. 当您已解决更改并要提交您沙盒中的版本时,在当前文件夹浏览器中,右键点击文件并选择源代码管理 > 标记为冲突已解决

    在 Git 中,“源代码管理详细信息”对话框中的分支状态将从 MERGING 更改为 SAFE

  7. 提交已修改文件。

合并文本文件

比较文本文件时,您可以将来自一个文件的更改内容合并到另一个文件。在解决不同版本文件之间的冲突时,合并更改内容很有用处。

如果您在文本比较报告中看到类似如下的冲突标记:

<<<<<<< .mine
则可按照 提取冲突标记 中介绍的方法在合并前提取冲突标记。

提示

在源代码管理中将一个文件与另一个版本作比较时,默认情况下右边的文件是您沙盒中的版本,左边的文件是上一个版本的临时副本或导致冲突的其他版本(例如:filename_theirs)。您可以交换文件的位置,因此请务必观察位于比较报告顶部的左边和右边文件的文件路径。将临时副本中的差异合并到您沙盒中的版本来解决冲突。

  1. 在“比较工具”报告中,选择报告中的差异并点击合并。选中的差异从左边的文件复制到右边的文件中。

    已合并差异的行将以灰色高亮显示,并显示绿色合并箭头。

    如果报告顶部的合并文件名称显示有星号 (filename.m*),则表示该文件包含有尚未保存的更改内容。

  2. 点击保存合并的文件以保存您沙盒中的文件。要解决冲突,请保存合并文件以覆盖冲突文件。

  3. 如要在编辑器中检查文件,请点击报告中的行号链接。

    注意

    如果您在编辑器中又进行了任何更改,则比较报告不会更新来反映更改内容,报告链接可能出现错误。

  4. 当您处理了更改内容后,请将其标记为冲突已解决。在当前文件夹浏览器中右键点击文件,然后选择源代码管理 > 标记为冲突已解决

提取冲突标记

什么是冲突标记?

源代码管理工具可以在您未注册为二进制文件(例如文本文件)的文件中插入冲突标记。您可以使用 MATLAB® 来提取冲突标记并对导致冲突的文件进行比较。以下流程将帮助您决定如何解决冲突。

小心

在源代码管理工具上注册文件,以防文件被插入冲突标记或被损毁。请参阅使用 SVN 注册二进制文件在 Git 中注册二进制文件。如果您的文件已包含冲突标记,使用 MATLAB 工具可以帮助您解决冲突。

冲突标记具有以下形式:

<<<<<<<["mine" file descriptor]
["mine" file content]
=======
["theirs" file content]
<<<<<<<["theirs" file descriptor]

如果您试图打开含有冲突标记的文件,会弹出“发现冲突标记”对话框。请按照提示通过提取冲突标记来修复文件。提取冲突标记后,请按照检查和解决冲突中介绍的方法解决冲突。

要查看冲突标记,在“发现冲突标记”对话框中点击加载文件。请勿尝试加载文件,因为 MATLAB 不能识别冲突标记。而是要点击修复文件来提取冲突标记。

MATLAB 只检查冲突文件中的冲突标记。

提取冲突标记

当您打开冲突文件或选择查看冲突时,MATLAB 会检查文件中的冲突标记并提供提取冲突标记的功能。MATLAB 只检查冲突文件中的冲突标记。

但是,未标记为冲突的部分文件中仍可能含有冲突标记。如果您或其他用户未删除冲突标记就标记为冲突已解决然后将文件提交,则可能发生此种情况。如果您在未标记为有冲突的文件中看到了冲突标记,则您可以提取该冲突标记。

  1. 在当前文件夹浏览器中,右键点击该文件,并选择源代码管理 > 将冲突标记提取到文件

  2. 在“将冲突标记提取到文件”对话框中,保持默认选项不变以复制“我的”文件版本覆盖冲突文件。选中比较所提取的文件复选框。点击提取

  3. 照常使用“比较工具”报告来继续解决冲突。