9

gruntjs タスクを precommit フックとして実行する方法はありますか。たとえば、失敗したテストや jshint の問題でコミットを防止したい。また、コミットごとにコード美化ツールを実行することも考えています。

4

3 に答える 3

9

Git フックは、コミットなどのアクションを実行するときに実行される単なるスクリプトです。好きなプログラミング言語を含めることができます。

うなり声をトリガーする例:

#!/bin/sh
grunt

これをファイルに保存します。.git/hooks/pre-commit

grunt が 0 より大きいエラー コードで終了した場合 (タスクが失敗した場合)、コミットが妨げられます。

このフックをゼロ以外で終了すると、コミットが中止されます


参考資料: git pre-commit フックを使用するためのヒント

および git ドキュメント: 8.3 Git のカスタマイズ - Git フック

他の多くのバージョン管理システムと同様に、Git には、特定の重要なアクションが発生したときにカスタム スクリプトを起動する方法があります。

于 2013-01-08T20:48:35.937 に答える
2

grunt-githooksをチェックする必要があると思います。これは素晴らしい Grunt プラグインで、すべての魔法を実行し、次のような特定のフックの Grunt タスクを 内から簡単に登録できますGruntfile.js

grunt.initConfig({
  githooks: {
    all: {
      // Will run the jshint and test:unit tasks at every commit
      'pre-commit': 'jshint test:unit',
    }
  }
});

( https://github.com/wecodemore/grunt-githooks#defining-a-few-hooksのドキュメントから取得)

モジュールは npm hereにあります。

于 2014-06-27T13:28:45.653 に答える