0

我目前正在使用grunt git hooks实现预提交钩子。我是使用这个插件的新手,我还不清楚我是否可以使用这个插件来做我最初打算做的事情。

目前,我为每个 git 提交触发了两个 grunt 任务,如下所示。

    githooks: {
        all: {
            'pre-commit' : 'compass requirejs'
        }
    }

上面生成 git pre-commit 钩子,如下所示。

#!/usr/bin/env node

// GRUNT-GITHOOKS START
var exec = require('child_process').exec;

exec('grunt compass requirejs', {
       cwd: 'C:\\development\\Sourcecode\\qnb-home'
     }, function (err, stdout, stderr) {

  console.log(stdout);

  var exitCode = 0;
  if (err) {
    console.log(stderr);
    exitCode = -1;
  }

  process.exit(exitCode);
});

// GRUNT-GITHOOKS END

虽然上述确保任务在 git 提交之前运行,但它不会将新创建的缩小文件(已编译的 SASS 和 r.js 文件)添加到现有提交中。

所以,我想git add --all使用 grunt githooks 在预提交钩子中添加一个。这有可能吗?任何评论/答案将不胜感激。

4

1 回答 1

1

您可以使用grunt-githook 的template选项来创建一个自定义模板,该模板将执行 git add --all 命令。这篇入门文章提供了如何创建自定义模板的一个很好的示例。

也就是说,git add -all在每次提交之前运行将使选择要提交的文件比平时做更多的工作。您必须在执行之前存储您不想成为提交的一部分的更改,然后再取消存储它们。如果您需要将这些文件添加到存储库中,那么在您添加的内容中更具针对性可能是值得的。毕竟,它们可以从源中生成。

于 2014-06-05T23:19:22.417 回答