SourceTree自定义操作不起作用,但通过Gitterminal窗口工作

我试图设置源代码树自定义Git动作来提取和压缩部署从选定的提交文件,直到头,不包括删除的文件与 – diff-filter。

archive -o deploy.zip HEAD $(git diff --name-only --diff-filter=ACMR $SHA)

源树自定义动作截图

问题是,这个Git命令完美的通过Gitterminal窗口没有错误,但是当我尝试在源代码树中使用它,我得到这个错误。

git archive -o deploy.zip HEAD $(git diff --name-only --diff-filter=ACMR fbf360c607b01fc8c504c9fcf98114eb4bc1896c) error: unknown option name-only

源树自定义操作错误消息的截图

我试图找出这个问题有什么问题,但没有成功。 我想听听在Source Tree中是否有这样或那样的问题,因为它看起来像是一个bug。

提前致谢,

干杯

$(…)是bash 命令替换 ,它运行里面的命令,并将其输出插入命令行。 SourceTree不使用bash来调用命令(这是Windows,不是吗?),而且您的命令不被替换。

您应该将您的命令放在脚本中,大致如下所示:

—— C:.. \ script.sh —-

 #!/bin/sh git archive -o deploy.zip HEAD $(git diff --name-only --diff-filter=ACMR "$1") 

并设置从源代码树调用它:
脚本运行:[… \ bash.exe]
参数:[-cc:.. \ script.sh $ SHA1]