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