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

发布于 2024-10-09 19:21:58 字数 1013 浏览 4 评论 0原文

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

上下文:我正在编写一个 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 '修改了 x 和 y 执行 foo 和 bar'

我希望通过 git hook 自动完成步骤 3 和 4。这可能吗?

我以前从未使用过 git hooks。阅读手册页后,我认为我需要使用预提交 钩子。但是我可以调用 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

I'd like to automatically generate a file and add it to a commit if it has changed. Is it possible, if so, what hooks should I use?

Context: I'm programming a CSS library. It has several CSS files, and at the end I want to produce a compacted and minimized version. Right now my workflow is:

  1. Modify the css files x.css and y.css
  2. git add x.css y.css
  3. Execute minimize.sh which parses all the css files on my lib, minimizes them and produces a min.css file
  4. git add min.css
  5. git commit -m 'modified x and y doing foo and bar'

I would like to have steps 3 and 4 done automatically via a git hook. Is that possible?

I've never used git hooks before. After reading the man page, I think I need to use the pre-commit hook. But can I invoke git add min.css, or will I break the internet?

EDIT: It worked! And I didn't create a black hole or anything!

Here's the code of my .git/hooks/pre-commit file:

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

The documentation didn't mention that I had to make it executable, or it would not work.

In case you are interested in how did I minimize, I used juicer - the minimizing command is:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暗藏城府 2024-10-16 19:21:59

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

No, it won’t break anything. You can freely use git add in a pre-commit hook.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文