使用批处理执行大型git命令



我正在尝试为我拥有的项目自动化一些补丁生成器,通常当有更改时,我会手动将其添加到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 上的等价物

最新更新