JetBrains Rider 2025.2 Help

解决 Git 冲突

当您在团队中工作时,可能会遇到有人将更改推送到您当前正在处理的文件的情况。 如果这些更改不重叠(即,对不同代码行进行了更改),则冲突文件将自动合并。 但是,如果相同的行受到影响,Git 无法随机选择一方,而是要求您解决冲突。

在 Git 中,当您尝试执行以下操作之一时,可能会出现冲突: pullmergerebasecherry-pickunstash changesapply a patch。 如果存在冲突,这些操作将会失败,系统会提示您接受上游版本、偏向您的版本或合并更改:

合并冲突对话框

Git 级别检测到冲突时,会自动触发 冲突 对话框。

如果您在此对话框中点击 关闭 或从命令行调用导致合并冲突的 Git 操作, 合并冲突 节点将出现在 更改 视图中的 提交 工具窗口,并带有解决这些冲突的链接:

本地更改视图中的 Merge Conflicts 节点

JetBrains Rider 提供了一个用于本地解决冲突的工具。 此工具由三个窗格组成:

  • 左侧窗格显示只读本地副本

  • 右侧窗格显示了已签入存储库的只读版本。

  • 中央窗格是一个功能齐全的编辑器,用于显示解决冲突的结果。 最初,此窗格的内容与文件的 基准修订版本相同,也就是两个冲突版本来源于该修订版本。

冲突解决工具中的颜色编码
  1. 修改的行

  2. 已删除的行

  3. 新增行

  4. 冲突行

解决冲突

  1. 冲突 对话框中点击 合并 ,在 本地更改 视图中点击 解决 链接,或在编辑器中选择冲突文件并从主菜单中选择 VCS | Git | 解决冲突

  2. 要自动合并所有不冲突的更改,请点击工具栏上的 “应用不冲突更改”按钮 (应用所有不冲突的更改)。 您还可以使用 左侧应用非冲突更改按钮从左侧应用不冲突的更改 )和 从右侧应用无冲突更改按钮从右侧应用不冲突的更改 )分别从对话框的左/右部分合并无冲突的更改。

  3. 要解决冲突,您需要选择应用哪个操作(接受 接受按钮 或忽略 忽略按钮 )到左侧(本地)和右侧(仓库)版本,并在中央窗格中检查结果代码:

    解决冲突视图

    您还可以右键点击中央窗格中突出显示的冲突,并使用上下文菜单中的命令。 使用左侧解决使用右侧解决 命令分别提供了接受一侧更改和忽略另一侧更改的快捷方式:

    冲突更改的上下文菜单

    对于简单冲突(例如,如果在不同文件修订版中修改了同一行的开头和结尾),允许一键合并更改的 解决简单冲突 解决简单冲突按钮 按钮将变得可用。

    解决简单冲突按钮

    此类冲突不会通过 应用所有不冲突的更改 操作解决,您必须确保它们得到妥善解决。

  4. 在解决冲突时,比较不同版本可能也是有用的。 使用 “比较内容”按钮 工具栏按钮调用选项列表。 请注意, 基准 指的是本地版本和存储库版本源自的文件版本(最初显示在中间窗格中),而 中间 指的是最终版本。

  5. 在中央窗格中查看合并结果,然后点击 Apply

提高效率的提示

自动应用无冲突的更改

您可以配置 JetBrains Rider 始终自动应用不冲突的更改,而无需从 合并 对话框中指示它去执行。 为此,请在 工具 | Diff Merge 设置页面  Ctrl+Alt+S 上选择 自动应用不冲突的更改 选项。

处理与 LF 和 CRLF 行结尾相关的冲突

团队中经常有人使用不同的操作系统,对同一个存储库进行贡献。 这可能会导致行尾问题,因为 Unix、Linux 和 macOS 使用 LF ,而 Windows 使用 CRLF 来标记行尾。

JetBrains Rider 显示 差异查看器 中的换行符差异,因此您可以手动修复它们。 如果您希望 Git 自动解决此类冲突,您需要在 Windows 上设置 core.autocrlf 属性为 true ,在 Linux 和 macOS 上设置为 input (详情请参阅 处理行结尾)。 您可以在 Windows 上运行 git config --global core.autocrlf true 或在 Linux 和 macOS 上运行 git config --global core.autocrlf input 手动更改配置。

然而,JetBrains Rider 可以自动分析您的配置,在您即将提交 CRLF 到远程存储库时发出警告,并建议根据您的操作系统将 core.autocrlf 设置为 true输入

为启用 换行符CRLF 行分隔符的智能处理,请打开 设置/首选项 对话框 Ctrl+Alt+S ,并选择左侧的 版本控制 | Git 节点。 启用 如果即将提交 CRLF 行分隔符,请警告 选项。

您启用此选项后,JetBrains Rider 将在每次提交带有 行分隔符警告对话框 分隔符的文件时显示 CRLF ,除非您在受影响的文件中设置了任何相关的 Git attributes (在这种情况下,JetBrains Rider 认为您清楚了解自己在做什么并从分析中排除此文件)。

行分隔符警告对话框 中,点击以下其中一个:

  • 按原样提交 忽略警告并提交带有 CRLF 分隔符的文件。

  • 修复并提交 需要根据您的操作系统,将 core.autocrlf 属性设置为 true输入。 因此,在提交之前, CRLF 行分隔符将被替换为 换行符

如果稍后您需要查看在合并过程中如何解决冲突,您可以在 日志 选项卡的 Git 工具窗口 Alt+9 中找到所需的合并提交,在右侧的 提交详情 面板中选择一个包含冲突的文件,然后点击 显示差异图标 或按 Ctrl+D。 如需了解更多信息,请参阅 查看更改如何合并

最后修改日期: 2025年 9月 26日