husky > ошибка предварительной фиксации (добавить —no-verify для обхода)

#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