Hier ist mein Anwendungsfall: Ich bearbeite PNGs und andere Sachen in meinem Git Repo. Ich würde gerne einen spezifischen Prozess auf alle PNGs anwenden, die ich gerne machen würde, und dies ist das Ergebnis des Prozesses, den ich endlich begehen möchte (das potentiell modifizierte PNG).
Am Anfang habe ich über einen Hook nachgedacht (wie ein pre-commit
), aber es ist etwas komisch, weil der Prozess die Datei ändert, also muss ich sie neu hinzufügen! Und nach dem, was ich lese , gibt es kein pre-add
hook (oder so etwas).
Kann eine Lösung sein, einen Git Alias zu erstellen? Aber ich möchte nicht ändern - zu viel - wie die Leute arbeiten, ich suche nach einem glatten und transparenten Weg.
Wenn Sie eine Ahnung haben ... selbst wenn der Hinweis ist, meine Prozessidee zu ändern.
Vielleicht möchten Sie einen Smudge & amp; sauberer Filter, wobei clean
während des Hinzufügens von git angewendet wird und der Fleck beim Checkout. Diese können nach Dateityp zugeordnet werden. Sehen Sie sich die Manpage 'Git Attribute (5)' und Git SCM Buch: Git Attribute an.
Es mag einen guten Grund geben, stattdessen clean
zu verwenden, aber es gibt nichts, was Sie daran hindert, die Dateien während des pre-commit
Hooks wieder hinzuzufügen, was meiner Meinung nach etwas intuitiver ist.
Ihr pre-commit
würde ungefähr so aussehen:
*run your PNG processing here*
git add *.png
Das Commit wird dann wie gewohnt fortgesetzt. Wenn Sie sich etwas einfallen lassen wollen, können Sie exit 1
hineinwerfen, wenn bei der Komprimierung etwas schief geht und das Commit beendet wird.
Ich habe etwas ähnlich wie disso gemacht, indem ich gulp
und gulp-git
benutzt habe.
Diese Aufgabe wird dann am Ende von allem anderen aufgerufen. Dann habe ich gulp
mit einem Pre-Commit-Hook eingerichtet. Funktioniert wie ein Zauber.
In Ihrem Fall sieht die vollständige Datei möglicherweise so aus:
%Vor%(Beachten Sie, dass ich es nicht getestet habe ... Ich habe den Aufgabencode für Bilder von Google erhalten.)
Tags und Links git hook gitattributes