Git中二进制文件的Difftool

时间:2013-06-14 20:47:21

标签: git batch-file difftool

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

该脚本复制原始文件并生成扩展名为.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临时文件夹的路径?
  • 或者:我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

/c/xxx

这就是我4年前在“How do I view 'git diff' output with a visual diff program?”中所做的。

但是对于更复杂的脚本,最简单的方法是创建一个单独的脚本(exejaras you suggests),并从批处理脚本中调用它。