#angular #git #pre-commit-hook #husky #git-husky
#angular #git #перехват предварительной фиксации #husky #git-husky
Вопрос:
Внезапно я получаю сообщение об ошибке «сбой перехвата husky > предварительная фиксация (добавить —no-verify для обхода)«, когда я даю git commit
.
Я тоже пробовал git clean
command. Кто-нибудь сталкивался с подобной проблемой?
Комментарии:
1. Вы также можете удалить папку .git / hook, а затем удалить и переустановить husky. Есть некоторые конфликты с файлами, сгенерированными husky, и .git/hook/ files. Это сработало для меня
Ответ №1:
Husky может предотвратить вас от плохого git commit
, git push
и многое другое. Если вы получаете эту ошибку, проверьте свой синтаксис кода. В случае, если вы получаете эту ошибку, даже если ваш код действителен, пожалуйста, используйте приведенное ниже решение.
#Решение 1:
Удалите .git/hooks
папку, а затем выполните npm install
для переустановки husky. Есть вероятность конфликтов с файлами, сгенерированными husky, и .git/hooks/ files
.
# Решение 2:
это временное / быстрое решение.
git commit -m "message" --no-verify
Комментарии:
1. Это помогло мне, хотя нет необходимости проверять синтаксис кода и другие ссылки. Спасибо @Sathia
2. удалите папку .git / hook в каталоге проекта и попробовал кодировать ее снова, и это сработало для меня как по волшебству. Спасибо!!
3. Удалена папка .git / hooks и снова зафиксирована. Это сработало и для меня
4. Это
hooks
множественное число. Удаление этого сработало для меня. Спасибо!5. удаление .git / hooks также сработало для меня!
Ответ №2:
Комментарий @Elio является наиболее предпочтительным решением, поскольку --no-verify
пропускает любые сценарии, которые должны выполняться.
Я предполагаю, что если скрипты есть, то это неспроста…
Поэтому:
Вы также можете удалить папку .git / hook, а затем удалить и переустановить husky. Есть некоторые конфликты с файлами, сгенерированными husky, и .git/hook/ files. Это сработало для меня
В моем случае удаление / переустановка не были необходимы.
Комментарии:
1. Для меня это
hooks
каталог.rm -r .git/hooks/
Ответ №3:
Я удивлен, что верхний ответ предлагает просто опустить проверку перехватов. Если у вас есть перехваты Husky, вы не можете просто игнорировать их.
В моем случае я начал получать husky > pre-commit hook failed (add --no-verify to bypass)
после обновления некоторых зависимостей. Проблема была решена путем изменения команды компоновки перед фиксацией Husky на npm run lint
(обычно она работает нормально в большинстве случаев) в файле husky:
// .huskyrc.json
{
"hooks": {
"pre-commit": "npm run lint"
}
}
Примечание: решение работает, если lint
скрипт объявлен в вашем package.json
; в моем случае у меня есть:
// package.json
{
"scripts": {
"lint": "tsc amp;amp; eslint "src/**/*.{js,ts,tsx}" --quiet --fix"
}
}
Ответ №4:
Я нахожу два временных решения, подобных этому
git config --unset core.hooksPath
или
git commit -m "message" --no-verify
Комментарии:
1. Первая команда сработала для меня, но что именно она делает?
Ответ №5:
Я пришел с тем же раздражающим сообщением об ошибке при фиксации в electron.js проект. Добавление --no-verify
опции работает, но также немного раздражает, что мне приходится делать это каждый раз при фиксации.
Затем я нашел что-то, связанное с предварительной фиксацией в package.json
файле:
{
"scripts": {
...
"precommit": "lint-staged",
...
}
}
Просто удалите приведенную выше строку, решив мою проблему.
Комментарии:
1. я полагаю, что это отключает перехват husky, аналогично удалению перехватов из папки .git. таким образом, просто обойти проблему, но не решить ее
2. @ArtemVertiy Husky больше не поддерживает перехваты предварительной фиксации в package.json, перехваты определены в папке .husky
Ответ №6:
Для меня мне пришлось добавить
"lint-staged": {
"**/*": "prettier --write --ignore-unknown"
},
к моему package.json
Комментарии:
1. Вы забыли добавить, что lint-staged — это отдельный пакет npm