添加git add到Grunt githooks插件

时间:2014-06-05 14:18:48

标签: git gruntjs githooks grunt-contrib-requirejs

我目前正致力于使用grunt git hooks实现预提交挂钩。我是新手使用这个插件,我有点不清楚我是否可以使用这个插件来做我最初设定的事情。

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

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

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

#!/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文件)添加到现有提交中。

所以,我想使用grunt githooks在预提交钩子中添加git add --all。这可能吗?任何评论/答案将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

您可以使用grunt-githook's template option创建一个自定义模板,该模板将执行git add --all命令。 This getting started article提供了如何创建自定义模板的一个很好的示例。

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