TL; DR: Использование eslint --fix
&& git add
в ловушке перед фиксацией работает, но оставляет поэтапные, а не поэтапные файлы! Использование ловушки после фиксации для git reset <staged-files>
, похоже, работает, но есть ли решение для этого?
Чтобы дать некоторую предысторию, я начал использовать lint-staged
и husky
для автоматического исправления ошибок lint JavaScript на git commit
. Это работает очень хорошо, если вы сначала разместили свои изменения, а затем зафиксировали, например:
git add index.js
git commit -m "Some Message"
IntelliJ IDEA, похоже, фиксирует файлы напрямую (например, git commit -m "Some Message" index.js
), что по-прежнему работает, автоматически фиксированные файлы фиксируются. К сожалению, при этом также остаются поэтапный файл (исправляется автоматически) и непостоянный файл (исходные ошибки lint), и это проблема, которую я хочу решить.
Не зная, с чего начать, я открыл выпуск 151. с lint-staged
, но после некоторого расследования проблема, похоже, связана с Git, а не lint-staged
.
У меня есть только базовые навыки работы с Git, поэтому, чтобы свести к минимуму отвлекающие факторы, я создал проект без lint-staged
или husky
и вручную добавил ловушку перед фиксацией. Затем я провел те же тесты (например, git commit -m "Some Message" index.js
), и неудивительно, что возникла та же проблема. Пытаясь решить эту проблему, я также добавил ловушку после фиксации, которая запускает git reset <staged-files>
, который, похоже, работает хорошо, но я не уверен, правильное ли это решение.
Если у вас есть опыт работы с этим или вы являетесь гуру Git, взгляните на демонстрационное репо и сообщите нам, если есть лучший способ. Любая помощь будет оценена.