Используйте git-hooks для определенных веток (с Husky и git-branch-is)
Я использую лайки и git-branch-is для git hooks. Ниже моего package.json
{
"scripts": {
"test": "jest",
...
},
"husky": {
"hooks": {
"pre-commit": "git-branch-is master && npm test",
"pre-push": "git-branch-is master && npm test"
}
}
С помощью этих опций при коммите из функции филиала /802 я избавляюсь от следующей ошибки
Error: Current branch is "feature/802", not "master".
Вопрос
- Как я могу отключить git hooks для веток, которые начинались с "feature"
- Применяйте крючки только для мастеров и развивающих веток.
- Может ли это быть реализовано без использования скриптов bash?
1 ответ
У меня это работает. git-branch-is
не нужно.
{
"hooks": {
"commit-msg": "if [[ $(git rev-parse --abbrev-ref HEAD) = develop ]]; then commitlint -E HUSKY_GIT_PARAMS; fi"
}
}
Использование if [ git-branch-is master]; then npm test; fi
, Затем тест git-branch-is master
возврат ошибочного (ненулевого) значения выхода не будет рассматриваться как сбой терминала хука.
Это может вызвать проблемы, если ловушка должна работать за пределами POSIX-совместимой оболочки.
Я проверяю, не является ли ветвь master или ветвь master, и тесты успешны.
"pre-push": "git-branch-is -r \"^((?!master).)*$\" || (git-branch-is master && npm test)"