教程:将 IntelliJ IDEA 用作默认的命令行合并工具
IntelliJ IDEA 可以成为一个强大的命令行合并工具,提升您的版本控制工作流程。
本教程将指导您将 IntelliJ IDEA 配置为默认的命令行合并工具,确保无缝集成到您的开发工作流中。 我们还将介绍如何直接在 您的 IDE 中解决冲突。
有关从命令行合并文件的更多信息,请参阅 从命令行合并文件。
前提
要完成本教程,请确保您已安装最新的 Git 版本
在您的项目中配置 .gitconfig 文件
在使用 IntelliJ IDEA 作为默认合并工具之前,您必须编辑您的 .gitconfig 。
在此指定 Git 默认使用的工具来解决合并冲突。 您正在使用的可执行文件的路径以及合并工具应退出,表明冲突已成功解决。
了解更多关于自定义您的 .gitconfig 的信息,请参阅 Git 文档。
根据您的操作系统定位 .gitconfig 并添加以下配置:
如果您将 IntelliJ IDEA 安装到 C:\Program Files\JetBrains\IntelliJ IDEA ,您可以使用以下配置:
[merge] tool = intellij [mergetool "intellij"] cmd = 'C:/Program Files/JetBrains/IntelliJ IDEA/bin/idea64.exe' merge "$LOCAL" "$REMOTE" "$BASE" "$MERGED" trustExitCode = true [mergetool] keepBackup = false对于 Mac OS 使用此配置:
[merge] tool = intellij [mergetool "intellij"] cmd = '/Applications/IntelliJ IDEA.app/Contents/macOS/idea' merge “$LOCAL” “$REMOTE” “$BASE” “$MERGED” trustExitCode = true [mergetool] keepBackup = false如果您将 IntelliJ IDEA 安装到 /opt/idea,请使用此配置:
[merge] tool = intellij [mergetool "intellij" cmd = '/opt/idea/bin/idea.sh' merge “$LOCAL” “$REMOTE” “$BASE” “$MERGED” trustExitCode = true [mergetool] keepBackup = false默认情况下,Git 会在解决冲突之前保留文件内容的副本。 合并后,Git 会使用
.orig扩展名保存带有冲突标签的原始文件。 如果您将变量keepBackup设置为false,此文件将不会被保留。停止编辑 .gitconfig 。
触发合并冲突
要测试 IntelliJ IDEA 现在是否是默认的合并工具,我们将制造一个合并冲突。 我们将创建一个包含简单 Java 类的新项目来实现此操作。
创建一个简单的 Java 类。
您可以使用以下示例代码:
public class MyClass { public static void main(String[] args) { System.out.println("one"); System.out.println("two"); } }将您的更改提交到 主分支 分支。

从 主分支 检出一个新分支。 我们将新分支命名为 feature1 。
更改 MyClass.java 并提交更改。

再次检出 主分支 ,重新更改 MyClass.java 并提交更改。
请尝试从命令行将 feature1 合并到 主分支 :
git merge feature1您将收到一条冲突通知,指出您有未合并的文件。
运行
git mergetool。IntelliJ IDEA 将自动启动并打开合并工具以解决冲突。
在 IntelliJ IDEA 中解决合并冲突
现在,IDE 会以可视化方式显示合并冲突。
在三方合并对话框中,选择您要应用更改的窗格,然后按下间距中的 接受左侧
或 接受右侧
。
在我们的案例中,我们选择从右侧的 feature1 分支进行变更。

点击 应用。
在终端中运行
cat命令,并查看您解决了合并冲突的文件中的合并结果。
您已成功将 IntelliJ IDEA 配置为默认命令行合并工具,并且了解了如何在 IDE 内解决冲突。