2013-01-08 6 views
8

Gibt es eine Möglichkeit, eine Gruntjs-Aufgabe als Precommit-Hook auszuführen. Zum Beispiel möchte ich Commits mit fehlgeschlagenen Tests oder JShint-Problemen verhindern. Ich habe auch daran gedacht, einen Code-Beautifier für jedes Commit auszuführen.Verwenden Sie gruntjs als Precommit-Hook

+0

ja; aber Sie brauchen Knoten auf der Maschine, wo dies läuft. – forvaidya

Antwort

8

Git-Hooks werden nur Skripte ausgeführt, wenn Sie eine Aktion wie Commit ausführen. Sie können jede Programmiersprache enthalten, die Sie möchten.

Beispiel auszulösen Grunzen:

#!/bin/sh 
grunt 

speichern in der Datei: .git/hooks/pre-commit

Wenn Grunzen beendet mit einem Fehlercode höher als 0, was es tut, wenn eine Aufgabe scheitern, wird verhindert, dass es die commit:

Beenden ungleich Null von diesem Haken

der Commit Abbrüche

Lesematerial: http://codeinthehole.com/writing/tips-for-using-a-git-pre-commit-hook/

Und die git docs: http://git-scm.com/book/en/Customizing-Git-Git-Hooks

Wie viele andere Version Control Systems, hat Git eine Möglichkeit, benutzerdefinierte Skripts zu feuern, wenn bestimmte wichtige Aktionen auftreten.

+2

Vergessen Sie nicht chmod + x auf Ihrer Pre-Commit-Datei zu tun –

2

ich glaube, Sie grunt-githooks sollten überprüfen, ein schönes Grunt-Plugin, das die Magie alles für Sie tut und lässt Sie leicht Grunt registrieren Aufgaben für bestimmte Haken aus Ihrem Gruntfile.js, wie zum Beispiel:

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

(aus der Dokumentation Genommen an https://github.com/wecodemore/grunt-githooks#defining-a-few-hooks)

Finden Sie das Modul auf npm here.

Verwandte Themen