Почему мой pre-commit не запускается, когда я фиксирую - PullRequest
1 голос
/ 03 июля 2019

enter image description here

enter image description here

У меня есть этот код ниже в моем репозитории Github, я хочу запретить кому-либо в моем репо делать коммиты напрямую мастеру, но он не работает, что, я допинг неправильный?

enter image description here

Я искал переполнение стека, и YouTube пытался найти учебники по этой проблеме, и мне не повезло

9 lines (6 sloc)  154 Bytes
#!/bin/sh

branch="$(git rev-parse --abbrev-ref HEAD)"

if [ "$branch" = "master" ]; then
  echo "You can't commit directly to master branch"
  exit 1
fi

Я хочу, чтобы пользователи были заблокированы от прямого доступа к мастеру В настоящее время они могут совершить мастер

Мой скрипт определенно может быть выполнен, но все равно ничего не показывает

1 Ответ

1 голос
/ 03 июля 2019

Чтобы такой хук выполнялся локально , убедитесь, что ваш хук находится в файле pre-commit в .git/hooks

Это будет работать для этого конкретного репо, но его следует вводить в каждом задействованном репо, где вы хотите, чтобы это было эффективным.


В дополнение к вашему хуку вы можете настроить github с правилами защиты веток, так что даже если кто-то фиксирует мастер на локальном компьютере, он не сможет отправить эти коммиты на github. Вы даже можете настроить его так, чтобы затем запрашивать его, чтобы получить коммиты на master. Это важнее, чем ваши локальные перехваты, именно потому, что каждый член команды не может отказаться от него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...