Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用git difftool显示原始文件名_Git_Git Diff_Git Difftool - Fatal编程技术网

使用git difftool显示原始文件名

使用git difftool显示原始文件名,git,git-diff,git-difftool,Git,Git Diff,Git Difftool,我将xxdiff与git difftool一起使用,但是其他GUI diff工具也有同样的问题。通常,git difftool必须将要比较的文件保存为名为/tmp/i2mLYu\u MyHeader.h的临时文件。这是一个相对于工作树可能是client/api/include/MyHeader.h的文件。像xxdiff这样的Diff工具显示临时文件的名称,通常在标题栏中,或者在Diff的每一侧上方。这使得理解正在查看的文件很不方便,尤其是当多个文件具有相同的基本名称时 是否有方法恢复原始的基于树

我将xxdiff与git difftool一起使用,但是其他GUI diff工具也有同样的问题。通常,
git difftool
必须将要比较的文件保存为名为/tmp/i2mLYu\u MyHeader.h的临时文件。这是一个相对于工作树可能是client/api/include/MyHeader.h的文件。像xxdiff这样的Diff工具显示临时文件的名称,通常在标题栏中,或者在Diff的每一侧上方。这使得理解正在查看的文件很不方便,尤其是当多个文件具有相同的基本名称时

是否有方法恢复原始的基于树的路径,以便可以显示它们?必须在diff工具周围编写一个包装器就可以了

谢谢


Jim

如果要比较两次提交或整个工作树中的更改,请尝试
git difftool-d


它将签出两个repo副本以进行比较,每个文件都将有一个相关的相对路径名。

如果要比较两次提交或整个工作树中的更改,请尝试
git difftool-d


它将签出两个repo副本进行比较,每个文件都有一个相关的相对路径名。

不幸的是,我认为答案是否定的:Git difftool代码没有将原始路径保存到任何有用的地方。如您所见,它至少会将文件的基名称附加到临时文件的末尾。如果它将原始名称传递到某个地方(可能是在一个env变量中),那就太好了。但我不能完全确定这一点,因为我从未使用过
git difftool
。不幸的是,我认为答案是否定的:git difftool代码不会将原始路径保存到任何有用的地方。如您所见,它至少会将文件的基名称附加到临时文件的末尾。如果它将原始名称传递到某个地方(可能是在一个env变量中),那就太好了。我不完全确定这一点,因为我从来没有使用过
git difftool
。这样提供的目录差异在某些方面甚至更有用,并且文件和目录名更合理。谢谢。这不完全是我想要的,但非常接近。这样提供的目录差异在某些方面甚至更有用,并且文件和目录名更合理。谢谢