是否可以检查 grunt 处理的所有文件的 'git status'?

Is it possible to check the 'git status' of all the files processed by grunt?

假设我有一个包含多个文件的项目(例如 .html.js.css.cs 等)。这些文件随 grunt 一起发布,它从我输入的 src/ 个文件中创建了一个 build/ 文件夹。

在此过程中,它并没有包含我所有的 src 文件,它还更改了一些文件的名称(例如 .min.js.min.css)。 输入文件的列表在任务中用 src 参数指定,重命名是用 ext 参数完成的。 这很酷,有关要包含在发行版中的文件的所有信息都在 grunt 文件中。

但是是否可以自动检查输入文件是否也被添加到 git?

几个月来发布了数百个版本,后来发现我忘记在第一次发布时向 git 添加一个重要文件,这将是非常令人沮丧的。 这意味着之前存储在 git 中的所有 snapshots 都不完整。

我知道一些自动化 Jenkins 测试可能会有所帮助,但这些测试可能应该包含另一个独立创建的文件列表。这将是一个很好的第二次检查,但情况不会更容易。

Grunt 知道发布所需的所有源文件,并且可以在发布期间进行许多检查。 如果 grunt 可以在 运行 他们的任务之前执行 git status 并且它可以在应用任务之前应用 source filter 来检查 git 中文件的存在,那就太好了。

创建一个 grunt 任务,或者执行一个 git 命令行也是一个解决方案,但恐怕我需要列出我所有的 src 列表和 ext 再次为此解决方案设置参数。

注意:为了开发,我也使用 Windows 和 Linux。

我创建了一个脚本,它可以完成对我来说很重要的一切。 但是,我不是一个大 Windows 脚本专家,所以我不得不将它分成两部分。

第一行必须在 PowerShell 中执行,其他行可以从标准 cmd 启动 window。

REM PowerShell:
REM grunt -v | findstr /R '^Reading' | %{$_ -replace '^Reading','@git status -s'} | %{$_ -replace '...OK$',''} | Out-File git_check.bat ASCII

git_check.bat
del git_check.bat

临时批处理脚本的示例输出,git_check.bat:

w:\Project>git_check.bat
?? src/js/output_SUSPEND.js
?? src/js/3rdparty/lz-string.js
?? src/img/ajax-loader.gif

有人有更简单的单脚本解决方案吗?