我正在尝试为我所拥有的项目自动化一些补丁生成器,并且通常在有更改时我手动将其添加到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':未知版本或路径不在 工作树。使用' - '将路径与修订分开
如果有人可以帮助我,我会非常感激。
答案 0 :(得分:0)
我认为语法$()是Unix / Linux特有的,因为它启动了一个子shell来执行给定的命令。
不幸的是我不知道Windows上的等价物
答案 1 :(得分:0)
如果仅供您个人使用,您可以考虑安装cygwin并在Windows上运行原始的shell / bash脚本。
当然,如果它是针对普通大众的,我不知道你是否可以期望他们安装cygwin。