git - 是否可以在 git diff 中配置临时文件夹?
问题描述
当调用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
环境变量。
从POSIX手册:
TMPDIR
这个变量应该代表一个目录的路径名,该路径名可用于需要一个地方来创建临时文件的程序。
快速浏览了一下 git 代码(git/builtin/difftool.c
),我认为目前不支持配置 temp 目录:
/* Setup temp directories */
tmp = getenv("TMPDIR");
xsnprintf(tmpdir, sizeof(tmpdir), "%s/git-difftool.XXXXXX", tmp ? tmp : "/tmp");
似乎 git 正在TMPDIR
取值,或者"/tmp"
,如果TMPDIR
未定义。
推荐阅读
- laravel - 从 Laravel 中的 json 响应中删除 ip
- ibm-watson - java.lang.NoSuchMethodError: com.ibm.watson.discovery.v1.Discovery.getServiceUrl()
- ibm-cloud - 如何将 TLS 与 IOT IBM 结合使用?
- matrix - PostScript 默认 CTM 值
- python - 使用 importlib.import_module 处理导入模块引发的异常
- ios - iOS 13 中历史相关的 Contacts 框架类有哪些?
- reactjs - 如何更新树中的 Redux 依赖状态对象?
- prolog - (SWI-PL) 我不知道如何创建一个序言规则来匹配这种特定类型的输入
- javascript - 在反应中添加生命周期方法之外的类名
- crystal-reports - Crystal 报表中的多字段分组