Я настраиваю некоторые git-крючки для запуска некоторых команд gulp
на pre-commit. Я в основном работать jshint
/plato
. Я в основном хочу обойти их для двух случаев:
- ветки исправлений (мастер/исправление)
- git merge (или найти способ сделать это способом, который не сбой в случае слияния)
Команда plato gulp запускает анализ источника и создает каталог /reports/, который отслеживает сложность с течением времени. Если мы это сделаем на ветке исправления, это приведет к конфликтам слияния при объединении их в процесс разработки. Достаточно говорить здесь простой крючок:
#!/bin/sh
if git diff --cached --name-only --diff-filter=ACM | grep '.js$' >/dev/null 2>&1
then
git stash -q --keep-index
./node_modules/.bin/gulp jshint
RESULT=$?
git stash pop -q
[ $RESULT -ne 0 ] && exit 1
git stash -q --keep-index
./node_modules/.bin/gulp plato
git add report/
git stash pop -q
fi
exit 0
Проблема прямо сейчас, если у меня конфликт слияния на "отчеты", и я разрешаю слияние. All conflicts fixed but you are still merging.
а затем зафиксировать его снова и снова анализирует и ставит коммит, и когда он совершает ошибку, это вызывает ошибку:
/Users/Nix/work/project/.git/modules/somesubmodule/MERGE_HEAD 'для чтения: нет такого файла или каталога.
Каталог существует, но нет слияния...