Git push не удалось из-за хриплого предварительного push на sourcetree
При отправке реактивного собственного проекта я получаю сообщение об ошибке из-за сбоя хриплого предварительного push
husky > Ошибка перед нажатием (добавьте --no-verify для обхода)
Все указанные ошибки являются ошибочными, как показано ниже
unused-vars
27:48 error Trailing spaces not allowed
no-trailing-spaces
75:5 warning Unexpected console statement
no-console
92:93 error Unexpected trailing comma
comma-dangle
96:81 error Unexpected trailing comma
Как отключить это в приложении Sourcetree на Mac?
0 ответов
Наконец-то нашел решение. Проблема (хотя это и не проблема!) Из-за хуков, созданных реагировать. Я просто удалил папку hooks для git, которая определяет хуки pre-commit и, следовательно, может нажать после этого.
Я считал не менее важным помочь вам понять husky
инструмент.
И я нашел эту статью очень полезной в решении этой ситуации, когда я тоже боролся.
Husky - это пакет npm, который позволяет вам определять сценарии npm, которые коррелируют с локальными событиями Git, такими как фиксация или push. И это помогает в обеспечении соблюдения стандартов совместной работы в проекте.
В своем проекте вы упоминаете, что все ошибки связаны с линтингом.
Так что тамhusky
сценарии были написаны для создания git hook
, называется pre-push
, который принудительно выполняет линтинг кода, прежде чем вы сможетеgit push
успешно.
На мой взгляд, особенно если вы работаете в команде, НЕ выключайте / деактивируйте эти проверки и НЕ удаляйте .git/hooks
папка. Вместо этого вернитесь и запуститеlint script
(часто встречается в package.json
) внесите необходимые изменения и после того, как вы git push
снова ты добьешься успеха.
Добавьте --no-verify в конец вашей команды push.
git push origin master --no-verify
Добавьте --no-verify до конца вашего коммита.
Я также на Mac и начал видеть их, я думаю, работая над приложением Carlo, которое я создал в своей основной папке проекта. Я пришел Googling для переполнения стека, потому что я не был уверен, что такое Husky (команда 'husky' не установлена), поэтому я начал копаться в поисках линтера, догадавшись попробовать eslint .
➜ src_aminosee git:(master) ✗ eslint .
Error: Cannot find module '@ljharb/eslint-config'
Referenced from: /Users/tom/Dropbox/Sites/funk.co.nz/aminosee/carlojet/node_modules/array-includes/.eslintrc
Именно тогда я понял, что у меня есть git-репо внутри git-репо (попробуйте папку "carlojet" внутри основного проекта "aminosee")!! Я должен (должен) переместить эту папку. Не уверен, что именно этот тип вложенных репо является причиной вашей проблемы, но после такого перемещения и попытки коммита я вижу:
git commit -am "moved carlojet folder out as i think its git repo conflicted with this main one"
Can't find Husky, skipping pre-commit hook
You can reinstall it using 'npm install husky --save-dev' or delete this hook
Can't find Husky, skipping prepare-commit-msg hook
You can reinstall it using 'npm install husky --save-dev' or delete this hook
Can't find Husky, skipping commit-msg hook
You can reinstall it using 'npm install husky --save-dev' or delete this hook
Can't find Husky, skipping post-commit hook
You can reinstall it using 'npm install husky --save-dev' or delete this hook
Мои знания о git отсутствуют, но мне кажется, что эти файлы теперь машут "до свидания", покинув репо; или, более вероятно, "подмигивая" мне, переместившись в каталог их родителей аминоси /.git/hooks/ (это было сюрпризом!), из их настоящего дома в аминосе / карлоджет /.git/hooks/
Возможно, мне придется отключить все эти хуки, дублированные из другого проекта... или, лучше, все же вызвать этот линтер! Я полагаю, что в моем случае не очень хорошая идея вкладывать git repo в себя.