Git добавить в ловушку pre-commit, не ставя файл для коммита

Я написал хук перед фиксацией, который компилирует мой проект и добавляет сгенерированный файл в коммит.

Это проект JavaScript, и я использую хаски, но я экспериментировал и с редактированием.git / hooks / pre-commit, и файл не добавлялся в коммит. Если я отменяю коммит, я вижу, что файл был добавлен, но по какой-то причине это не относится к текущему коммиту.

Мой хук pre-commit выглядит примерно так:

const shell = require('shelljs');

shell.exec('yarn bundle');
shell.exec('git add dist');
shell.exit(0);

shelljs это просто библиотека для выполнения кросс-ОС Unix команд в узле

Я редактировал .git/hooks/pre-commit бежать git add dist и файл все еще не добавлен в коммит

1 ответ

Решение

Я не думаю, что git add может работать в хуке предварительной фиксации, предназначенном для проверки того, что должно быть зафиксировано, а не для его изменения.

Вместо этого вы можете использовать подход, аналогичный " Может ли ловушка Git автоматически добавлять файлы в коммит?", Который создает отдельный дополнительный коммит.

Другие вопросы по тегам