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

时间:2013-07-03 12:49:19

标签: windows git batch-file

我正在尝试为我所拥有的项目自动化一些补丁生成器,并且通常在有更改时我手动将其添加到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':未知版本或路径不在   工作树。使用' - '将路径与修订分开

如果有人可以帮助我,我会非常感激。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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