Как добавить файл в индекс в обработчике git pre-commit

Я поискал дубликаты, и хотя некоторые из них имеют похожие названия, я не нашел никого, у кого была бы такая же проблема, как у меня, так что вот оно.

Я написал сценарий, который запускается до фиксации и использует вывод git status --porcelain для компиляции любого файла LESS в моем проекте, который был изменен. Эта часть работает нормально. Но я хочу, чтобы файлы .css были включены в текущий коммит. Так что в дополнение к запуску компилятора мой сценарий запускает git add . И здесь все становится непросто.

Файл добавлен в индекс, но это не индекс текущей фиксации. Итак, если я изменю стиль .less и запустите git commit -a (или вручную git add style.less ), компилятор должен сгенерировать стиль style.css и style .min.css и добавьте их в текущий коммит. Но я заметил, что фиксируется только style.less , несмотря на то, что два файла .css добавляются в индекс для следующей фиксации.

Итак, мой вопрос: есть ли способ добавить файлы в фиксацию в ловушке перед фиксацией, чтобы они вступили в силу для этой фиксации? Обратите внимание, что до запуска ловушки предварительной фиксации эти два файла .css не изменяются, поэтому я не могу просто добавить их перед этим. Я также знаю, что могу выйти из ловушки с ненулевым статусом, поэтому фиксация отменяется, но файлы добавляются, но я надеюсь этого избежать. Есть идеи получше?

16
задан Jimmy Sawczuk 24 February 2012 в 19:47
поделиться