【发布时间】:2018-10-19 07:19:59
【问题描述】:
当在存储库中调用git difftool 时,git 将本地存储库中的修改文件与远程存储库中的匹配文件进行比较。为此,它会为远程创建一个临时文件,设置变量 LOCAL 和 REMOTE 并调用 git 配置中为差异指定的任何工具。
默认情况下,临时文件在/tmp/<hash>_filename 中创建。 是否可以更改此默认位置?
你为什么要这样做?
长话短说,我正在通过 Windows 子系统为 linux 使用 git,我想使用 Windows 工具进行差异和合并。问题是,/tmp 无法从 Windows 端访问,因此我需要将 git 创建临时文件的默认位置移动到 Windows 可访问的位置。
我尝试了什么:
到目前为止,我只能找到对sudo mount -B /tmp /mnt/c/tmp 的建议,但这似乎不起作用(/tmp 仍然指向与以前相同的目录...)
【问题讨论】:
-
你试过设置
TMPDIR环境变量吗? -
No.. 在 tbh 之前从未听说过。我查一下
-
嗯,做到了(有些矫枉过正)。我希望这可以通过
git配置而不是系统范围的变量来实现。现在我在控制台中运行的所有命令都将使用我的新 tmp 位置。 @sergej,如果您将其添加为答案,我至少会支持它(如果不存在其他仅 git 选项,则将其标记为实际答案)。我还要对TMPDIR对像我这样的 linux 无知的人做一个最小的解释;) -
这是 git。 Git 创建临时文件,然后将
LOCAL和REMOTE设置为临时文件和存储库中匹配文件的路径。它最终调用.gitconfig中指定的命令并设置环境变量 -
@Liam 是的,这正是我正在做的。然而,自定义命令将
LOCAL和REMOTE作为两个文件的参数来区分。我的问题是在 whereLOCAL创建,而不是在调用外部工具
标签: git git-difftool