2016-03-25 86 views
3

我想设置源树自定义Git动作来提取和压缩文件从选定的提交部署到HEAD,不包括删除的文件--DIFF筛选器。SourceTree自定义操作不起作用,但通过Git终端窗口工作

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

Source Tree custom action screenshot

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

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

Source Tree custom action error message screenshot

我一直试图弄清楚什么是这个问题的问题,但没有成功。我想知道是否有人在源代码树中有这个或类似的问题,因为它看起来像一个bug。

由于提前,

干杯

+0

如果我猜得correctl Ÿ你在Windows上运行它,请编辑你的问题添加“窗口”标记 – max630

回答

0

$(...)是bash的commands substitution,其内部运行的命令,并插入它的输出,而不是到命令行。 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]

+0

感谢@ max630为您的答案,我试过你的解决方案,似乎有一个进展。现在我得到这个错误:'bash.exe -c C:/Users/SUBA/Documents/SourceTree/deploy.sh 110738aee6726fbef57370e4b5c63962c6530aa1 C:/Users/SUBA/Documents/SourceTree/deploy.sh:第2行:git:命令未找到“ –

相关问题