【问题标题】:Is it possible to check the 'git status' of all the files processed by grunt?是否可以检查 grunt 处理的所有文件的“git status”?
【发布时间】:2019-09-29 00:35:59
【问题描述】:

假设我有一个包含多个文件的项目(例如.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。

【问题讨论】:

  • 您的.gitignore 文件还不够吗?如果您使用git commit -a,则在发布时,它肯定会添加您的所有文件(除非在.gitignore 中指定)。所以问题是你的发布过程是什么,因为你的发布过程肯定会添加你所有的文件。 *.min.css*.min.js 通常被认为是工件,并且不使用具有相同 repo 的 git 进行版本控制(但这不是大多数 Web 开发人员遵循的约定,而是大多数 Java/C/Go 开发人员使用的约定)
  • azbarcea:是的,这也是一种可能的解决方案。虽然它有一些缺点: - Gruntfile.js 和 .gitignore 必须有完全相同的过滤器。所以需要手动同步。 - 我通常使用.gitignore 作为前置过滤器。例如,如果我有一个文件的多个开发版本(例如js/util-bad.jsjs/util-objectcopy_test.js),那么我并不总是更新它。但是 .gitignore 可能只是一个很好的指标,如果它通常包含 0 个未跟踪文件,否则你不会轻易注意到它现在有 13 个未跟踪文件而不是 12 个。
  • azbarcea:总结:.gitignore 仅在开发人员的工作副本干净整洁的情况下才有效。但如果不是呢?如果他/她的文件有点乱? - Grunt 可以通知几乎所有简单的错误。如果开发人员希望对所有源文件进行版本控制,那么这也是一个简单的检查。作为一种解决方法,如果 grunt 可以列出所有已处理的源文件就足够了。
  • 根据我之前的想法,我找到了一种解决方法。幸运的是grunt -v 打印了必要的输出。所以现在我添加代码作为这篇文章的答案。

标签: git gruntjs


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    相关资源
    最近更新 更多