2

我已经让 Git 通过Temp使用.bat文件(或批处理脚本)将文件复制到 Windows 文件夹中的目录来区分一些二进制文件。

该脚本复制原始文件并制作一个带有扩展名的伴随文件,.txt其中包含二进制文件的文本表示。之后,它使用命令写入生成文件的内容

type C:\DOCUME~1\ROGER\CONFIG~1\Temp\roger\file.txt

所有这些都在使用 Git 属性。现在,我需要使用.txt要在命令中使用的伴随文件git difftool而不是原始文件。我如何告诉 Git 在比较文件时应该使用哪些.someExtension文件?

我试图制作另一个.bat文件,但所需的配置.gitconfig似乎只运行 Linux 脚本,而不是我需要的 Windows,因为 Linux 不理解 Git 给出的路径,即C:\DOCUME~1\ROGER\CONFIG~1\Temp\在运行复制命令时cp

这是我的.gitconfig

[difftool "fmbdiff"]
    keepBackup = false
    keepTemporaries = false
    path = C:/Archivos de programa/Git/cmd/fmbDiffTool.bat
    cmd = \"/c/Archivos de programa/Git/cmd/fmbDiffTool.bat\" \"/$LOCAL\" \"$PWD/$BASE\"

因此,可能解决问题的问题是:

  • 如何运行 gitconfig 中 difftool 的 cmd 条目中指定的 .bat 文件?
  • 或者:当运行Git调用的脚本并且Linux可以理解复制时,我如何获取Windows临时文件夹的路径?
  • 或者:我做错了什么来实现这一目标?
4

1 回答 1

1

基本上,difftool 声明了一个批处理脚本,它可以与 Windows 路径一起使用,例如:

/c/xxx

这就是我4 年前在“如何使用可视差异程序查看 'git diff' 输出? ”中所做的。

但是对于更复杂的脚本,最简单的方法是制作一个单独的(exejar如您所建议的那样),然后从批处理脚本中调用它。

于 2013-06-15T13:22:39.360 回答