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 в себя.

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