根据doc和这里的各种答案,git difftool将调用指定的可执行文件(通常是shell脚本),并将环境变量LOCAL和REMOTE设置为文件路径。但是当我尝试的时候,没有设置LOCAL和REMOTE。我尝试过以下测试:
git config --global diff.tool mytest
git config --global difftool.mytest.cmd mytest.sh
git config --global difftool.prompt false 使用mytest.sh:
#!/bin/sh
echo "LOCAL:$LOCAL REMOTE:$REMOTE" 调用:
git difftool --tool mytest <commitid> -- <path-to-file> 输出:
LOCAL: REMOTE: 有什么建议吗?
发布于 2009-12-19 04:44:35
手册页的意思是,difftool..cmd的命令行中可以包含$LOCAL和$REMOTE。这些将被替换为相关的文件路径。并不打算将这些变量导出到您的环境中。
为了通过示例进行演示,这里是原始设置的重新工作版本。
git config --global diff.tool mytest
git config --global difftool.mytest.cmd 'mytest.sh $LOCAL $REMOTE'
git config --global difftool.prompt false发布于 2009-12-19 03:49:49
这是我一直使用的diff包装器(使用tkdiff):
#!/bin/sh
# diff is called with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode
tkdiff "$2" "$5"它使用参数而不是$LOCAL和$REMOTE。
https://stackoverflow.com/questions/1930298
复制相似问题