0

我正在尝试为我拥有的项目自动化一些补丁生成器,通常当有更改时,我手动将其添加到 git 存储库中,提交它,然后我生成一个包含更改文件的 zip 文件:

git archive --output=patch_X_$(date "+%Y-%m-%d_%H_%S").zip HEAD $(git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT  $(git log master -n 1 --pretty=format:%H))

现在我正在为 Windows 创建一个批处理脚本,它将执行所有命令,但是在生成补丁文件时我被卡住了。

当我写这行时,我得到一个错误:

call git archive --output=patch_X_$(date "+%Y-%m-%d_%H_%S").zip HEAD $(call git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT  $(call git log master -n 1 --pretty=format:%H))

这是我得到的错误:

致命:模棱两可的参数'$(git':未知修订版或路径不在工作树中。使用'--'将路径与修订版分开

如果有人可以帮助我,我将不胜感激。

4

2 回答 2

0

我认为语法 $() 是 Unix/Linux 特定的,因为它启动一个子 shell 来执行给定的命令。

不幸的是,我不知道 Windows 上的等价物

于 2013-07-03T13:09:07.260 回答
0

如果它只是供您个人使用,您可以考虑安装 cygwin 并在 Windows 上运行原始的 shell/bash 脚本。

当然,如果它是针对普通大众的,我不知道您是否可以期望他们安装 cygwin。

于 2013-07-03T13:47:53.597 回答