Я хотел остановить всех разработчиков от возможности делать git push для управления (--force исключено). Вместо того, чтобы просить всех создать файл предварительного нажатия в папке .git/hooks, я хотел автоматизировать процесс с использованием npm и добавить необходимые файлы в удаленный репозиторий git.npm установленный предварительный пусковой крючок, связанный с пользовательским сценарием, всегда пропускается
Я добавил к «пре-толчка» в package.json, который указывает на пользовательский сценарий,
"pre-push": {
"run": [
"prepushscript"
]
},
"scripts": {
"start": "node app.js",
"test": "node_modules/.bin/gulp test",
"prepushscript": "prepushscript"
},
"devDependencies": {
.
.
"pre-push": "^0.1.0",
.
.
}
Примечание: prepushscript пользовательский скрипт находится на том же уровне, что и файл package.json.
prepushscript файл довольно прямолинеен
protected_branch='master'
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')
if [ $protected_branch = $current_branch ]
then
echo "Error: You are attempting to push to a protected branch."
exit 1 # push will not execute
fi
Обычай скрипт работает, потому что на создание локального предварительно нажимной файл в .git/папку крючков и пытаются подтолкнуть к защищенным результатам ветвления в эхе скрипта сообщение об ошибке, которое будет видно. Установка Npm создает символическую ссылку в папке .git/hooks. После того, как у меня есть обязательство готово выдвинуть в то время как на местном мастер и запустить мерзавец толчок, толчок проходит и я получаю следующее,
pre-push:
pre-push: Failed to find the root of this git repository, cannot locate the `package.json`.
pre-push: Skipping the pre-push hook.
pre-push:
Everything up-to-date
Я попытался заменить prepushscript записи с простой констатацией эха в пакете .json, чтобы увидеть, есть ли проблема со сценарием, но я получаю тот же консольный журнал. Другие попытки, которые были сделаны, заключались в добавлении расширений в файл prepushscript, чтобы узнать, работает ли он.
Основная проблема, которую я не могу понять, - я не могу найти источник ошибки и то, что она имеет отношение к package.json. Спасибо за вашу помощь!