解决文件冲突

使用 Team Foundation 版本控制 的优点管理文件是多人可以在文件同时工作。 一个缺点是您有时会需要解决冲突,然后才能 获取注册取消搁置合并滚动 您的文件之前。

冲突的更改会阻止签入

尽管它可以是令人沮丧遇到冲突,系统提供信息和工具可帮助您了解解决冲突。

提示

默认情况下,系统会自动尝试访问 *** 自动解决所有 *** 冲突,则除非关闭此选项(请参见 提示)。

所需权限

您必须是一个团队项目的 *** 参与者 ***。 请参见 Team Foundation Server 默认组、权限和角色

您希望做什么?

  • 管理和有关冲突的信息

  • 自动解决所有冲突

  • 自动合并单个冲突

  • 手动解决单个冲突

  • 了解自动选项

  • 了解比较选项

  • 从命令提示工作

  • 获取提示

解决冲突窗口

解决冲突窗口自动当您尝试执行的操作被一个或多个冲突块。

“解决冲突”窗口

默认情况下,该窗口仅显示由最近尝试的操作引起的冲突。 当窗口处于此状态时,开始的消息: *** 已应用的路径筛选器 ***。 在您的工作区若要显示所有冲突,选择 *** 获取所有冲突 ***。 从开始的消息: *** n冲突 *** 显示。

如果很长时间,则您的工作区中的文件进行更改,新的冲突可能已发生。 若要刷新 *** 解决冲突 *** 窗口中,选择 *** 刷新 ***

每个冲突包含可以帮助您解决它的信息和有时链接。 获取更多信息,可以选择该冲突并选择:

  • “历史记录”按钮 查看文件的历史记录中的历史记录。 如果引起冲突的操作是合并或回滚,则可以在 历史记录 右侧选择菜单控件然后选择 *** 源历史记录 ****** 目标历史记录 ***

    请参见 获取某项的历史记录

  • “批注”按钮 查看有关对文件的最新版本的所有更改的详细信息***** 说明 *****,包括做出每项更改,因此,当用户提交事务。 请参见 使用批注查看文件更改

  • “比较文件”按钮 *** 比较 *** (或在按钮右侧的菜单中选择命令)。 差异 将出现窗口。

自动解决所有冲突

默认情况下系统会自动尝试访问 *** 自动解决所有 *** 冲突,则除非关闭此选项(请参见 提示)。 在解决冲突窗口,可以手动选择 *** 自动解决所有 ***,然后选择:

  • 如果您希望系统尝试使用其试探方法自动解决冲突,请选择**“所有冲突类型”**。

  • 如果您希望系统尝试解决冲突,但又希望排除某些试探方法,请选择**“特定冲突类型”**。

    随即显示**“选择要解决的冲突”**对话框。 选中或清除要启用或禁用选项卡,然后选择 *** 自动解析 ***。 有关更多信息,请参见下面 自动解析选项。

系统会尝试自动解决在“挂起的更改”窗口中显示的冲突。 系统无法解决的所有冲突在窗口中将保持。 必须 手动解决 这些冲突。

自动合并单个冲突

如果要尝试解决在所选冲突使用在下面,自动解析选项 描述的所有自动合并选项中选择 *** 自动合并 ***

提示

可以按和按住Ctrl或shift键然后选择多个冲突。

备注

如果“自动合并”处于禁用状态,则表示必须手动解决此冲突。

手动解决单个冲突

如果系统无法自动解决冲突,或者,如果要确保您了解更改,则必须手动解决冲突。 在每个冲突中,系统会显示可用于解决冲突的操作。 所显示的措施具体取决于冲突类型以及引起冲突的操作。

ms181432.collapse_all(zh-cn,VS.110).gif在合并工具中合并更改

当冲突由冲突的内容更改时引起的,则可以选择 *** 在合并工具中合并更改 ***

若选择此事件时,将出现窗口。

合并窗口

解决冲突的工作的结果。*** 结果 *** 窗格显示。

此窗口可以:

  • 选择windows窗体中: *** 垂直视图 ****** 水平视图 ****** 混合视图 ***

  • 差异和冲突之间导航。

  • 选择项目从文件的左右版本将它们包括在结果中。

  • 键入其他的内容添加到"结果"窗格中的文件。

  • 查看文件的历史记录。 请参见 获取某项的历史记录

  • 比较文件的各个版本。

  • 说明文件以了解谁做了哪些更改。 请参见 使用批注查看文件更改

在满足到 结果 窗格的内容时,请选择 *** 接受合并 ***

了解自动选项

在极端情况下,您可能希望限制 *** 自动解决所有 *** 选项可自动解决冲突的类型。

当您选择 ***** 自动解决所有 *****然后 *** 特定冲突类型 ***时,*** 选择解决冲突 *** 出现对话框。

“选择要解决的冲突”对话框

如果您希望系统自动解决发生的冲突,因为…

如此示例中所述…

则选择此复选框…

在每个文件版本中进行了互不冲突的内容更改

在左侧的文件版本中,在开头添加了。 在右侧的文件版本中,在末尾添加了

不冲突的内容更改

与任何内容更改冲突

只对工作区(在获取或签入操作期间)或目标版本(在合并或回滚操作期间)进行了内容更改

向工作区或目标版本中添加了

工作区或目标特有的内容更改

只与本地工作区或目标分支中的内容更改冲突

只对服务器(在获取或签入操作期间)或源版本(在合并或回滚操作期间)进行了内容更改

向服务器或源版本中添加了

服务器或源特有的内容更改

只与服务器版本或源分支中的内容更改冲突

服务器(在获取或签入操作期间)或源分支(在合并或回滚操作期间)中的文件已重命名

您签出了一个名为“launch.cs”的文件并对该文件进行了处理。 与此同时,某他人签入了对此同一文件产生影响的变更集。 该变更集未修改该文件内容,但将该文件的名称更改为“start.cs”。

因重命名服务器版本或源分支中的文件导致的冲突

  • 所做的通用内容更改导致每个版本的内容相同

  • 您更改了某一文件,通过封闭签入生成签入该文件,然后选择了“在本地保留我的挂起更改”选项

对每个版本的更改产生了相同的文件内容。 可以对文件中的内容进行更改,如以下示例所示:

在每个版本中进行了相同的内容更改

此选项还可解决由所有其他操作(例如,重命名、删除、取消删除和分支)导致的冲突以及那些将会产生相同文件的冲突。

提示提示
如果选择此复选框,在继续操作时,系统将通过将服务器版本放置(下载)到工作区上来解决这些更改。

相同的更改导致的冲突在服务器和工作区中

从命令提示工作

提示

  • 提示默认情况下系统会自动尝试访问 *** 自动解决所有 *** 冲突。 从菜单栏若要更改选项卡,选择 *** 工具 ****** 选项 ***,然后在 *** 选项 *** 对话框中,导航到 *** 源代码管理 ****** Visual Studio Team Foundation Server ***。 清除 *** 尝试自动解决冲突,则会生成 *** 复选框。

  • 提示团队是否需要协作解决大量冲突(例如,可能在大型基本代码的合并操作之后发生)? 如果是这样,共享dev设备的公共工作区可能帮助。 请参见 创建和使用工作区