我已经查找了重复内容,虽然有些标题相似,但我没有发现有人遇到和我一样的问题,以下是我的问题。
我编写了一个脚本在 pre-commit
上运行,并使用 git status --porcelain
的输出来编译项目中发生改变的任何 LESS 文件。这部分可以正常工作。但我希望将 .css 文件包含在当前提交中。因此,除了运行编译器外,我的脚本还运行 git add <filename>
。这就是问题所在。
该文件确实添加到了索引中,但它不是当前提交的索引。因此,如果我修改了 style.less
,并运行 git commit -a
(或手动执行 git add style.less
),编译器应该会生成 style.css
和 style.min.css
并将它们添加到当前提交。但我注意到的行为是只有 style.less
被提交了,尽管两个 .css
文件添加到了索引以供下一次提交。
因此,我的问题是:有没有办法在 pre-commit 钩子中将文件添加到提交中,以便它们对那个提交生效?请注意,在运行 pre-commit 钩子之前,这两个 .css
文件没有被修改,因此我不能在这之前添加它们。我也知道可以使用非零状态退出钩子,以便取消提交但添加文件,但我希望避免这种情况。有更好的想法吗?