15

通常当我做差异时,我想在提交之前编辑我的本地文件。这在 Eclipse 的比较视图中非常有效,因为它允许您轻松地编辑本地文件以及复制以前版本的更改。

我正在尝试将 Git 和 KDiff3 设置为以相同的方式工作。当我使用 KDiff3 作为我的合并工具时,它按预期工作。但是,当我将它设置为 difftool 时,它给了我一个只读视图,所以我无法进行任何编辑。根据文档(http://kdiff3.sourceforge.net/doc/documentation.html),我希望该--output选项可以给我想要的两个文件合并,但事实并非如此。我的 .gitconfig 的相关部分:

[diff]
  tool = kdiff3
[difftool "kdiff3"]
  cmd = /Applications/kdiff3.app/Contents/MacOS/kdiff3 $LOCAL $REMOTE --output $LOCAL
  trustExitCode = false
4

2 回答 2

8

如果我使用以下命令,我可以使用 KDiff3 编辑树内文件:

kdiff3 $LOCAL $REMOTE --output $MERGED

KDiff3 在我的$PATH,所以重要的一点是将输出从$LOCAL改为改为 be $MERGED

git-difftool手册页:

...配置的命令行将使用以下可用变量调用: $LOCAL 设置为包含差异前映像内容的临时文件的名称,$REMOTE 设置为包含差异后图像的内容。$MERGED 是正在比较的文件的名称。

由于将输出设置$LOCAL为将写入临时文件,因此您将改为写入,$MERGED因为这将是实际的“本地”树内文件。

于 2012-10-20T19:08:40.933 回答
0

这是在 Eclipse 中为 GIT 配置 kdiff3 的分步指南:

  1. 让 git 创建一个配置文件
  • 如果您的 userdir中已有.gitconfig文件,则可以跳过

    Windows 用户:

    %userprofile%(在资源管理器地址栏中复制粘贴)

  • 一个名为“.gitconfig”的文件需要在那里存在

1.1 打开一个cmd窗口,执行:

git config --global --edit
  • 配置文件已创建。
  1. 打开配置文件“.gitconfig” 2.1 添加以下行将kdiff3注册为git的diff和merge工具(自定义您需要的路径):

    [difftool "kdiff3"]
    path = "C:\Program Files\KDiff3/kdiff3.exe"
    #

    [mergetool "kdiff3"]
    path = "C:\Program Files\KDiff3/kdiff3.exe"
    #trustExitCode = true
    #

注意:这将是注册您喜欢的任何其他支持的合并工具的位置。

  1. 创建一个名为“git merge”的新“程序”“外部工具配置”以在 Eclipse 中执行合并!3.1 选择以下参数:
  • 地点:

    C:\Program Files\Git\bin\git.exe

  • 工作目录:

    ${git_work_tree}

  • 论据:

    合并工具 --tool=kdiff3

要执行合并,请使用标准 eclipse 合并,一旦工作区显示冲突状态(项目上可见的红色标记),您标记要合并的项目并启动我们在上面列出的步骤中创建的“外部工具配置” .

合并将开始,kdiff3 窗口将弹出。 从现在开始,继续您的业务,仅在您对合并结果满意时保存文件,因为如果您保存了文件,kdiff 将提供积极的合并反馈。

于 2021-08-18T13:18:03.780 回答