【发布时间】:2012-03-15 06:37:09
【问题描述】:
我四处寻找重复的内容,虽然其中一些有相似的标题,但我没有发现任何人和我有同样的问题,所以就这样吧。
我编写了一个在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 文件被添加到下一次提交的索引中。
所以我的问题是:有没有办法在预提交挂钩中将文件添加到提交中,以便它们对该提交生效?请注意,在运行预提交挂钩之前,这两个 .css 文件没有被修改,所以我不能在此之前添加它们。我也知道我可以以非零状态退出钩子,因此提交被取消但文件被添加,但我希望避免这种情况。有更好的想法吗?
【问题讨论】: