我目前正致力于使用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
。这可能吗?任何评论/答案将受到高度赞赏。
答案 0 :(得分:1)
您可以使用grunt-githook's template
option创建一个自定义模板,该模板将执行git add --all命令。 This getting started article提供了如何创建自定义模板的一个很好的示例。
也就是说,在每次提交之前运行git add -all
将使得选择哪些文件比平常提交更多的工作。在执行此更改之前,您必须存储您不希望成为提交一部分的更改,然后再将其取消。如果您需要将这些文件添加到存储库中,那么添加的内容可能值得更有针对性。毕竟它们可以从源头生成。