git hooks - 重新生成一个文件并将其添加到每个提交中?

时间:2010-12-25 23:49:08

标签: git githooks

我想自动生成一个文件并将其添加到提交中(如果已更改)。是否有可能,如果是这样,我应该使用什么钩子?

上下文:我正在编写一个CSS库。它有几个CSS文件,最后我想生成一个压缩和最小化的版本。现在我的工作流程是:

  1. 修改css文件x.cssy.css
  2. git add x.css y.css
  3. 执行minimize.sh解析我的lib上的所有css文件,最小化它们并生成min.css文件
  4. git add min.css
  5. git commit -m 'modified x and y doing foo and bar'
  6. 我想通过git hook自动完成第3步和第4步。这可能吗?

    我之前从未使用过git hooks。阅读man page后,我想我需要使用pre-commit挂钩。但我可以调用git add min.css,还是会打破互联网?

    编辑:它奏效了!我没有创造黑洞或任何东西!

    这是我的.git / hooks / pre-commit文件的代码:

    #!/bin/sh
    exec minimize.sh
    exec git add oocss.min.css
    

    文档没有提到我必须使其可执行,否则它将无效。

    如果您对我如何最小化感兴趣,我使用了juicer - 最小化命令是:

    exec juicer merge --force my-uncompressed-file.css
    

1 个答案:

答案 0 :(得分:5)

不,它不会破坏任何东西。您可以在git add挂钩中自由使用pre-commit