Git hook, чтобы заблокировать изменения в определенных папках - PullRequest
3 голосов
/ 23 октября 2019

Мне было интересно, есть ли шанс создать ловушку для git, чтобы блокировать изменения в определенных папках. Например, есть папка A с некоторыми файлами в ней, и ловушка должна проверить, не изменились ли файлы в этой папке (или файлы в подпапках). Если так, то должна появиться ошибка. Как мне этого добиться?

Спасибо!

1 Ответ

2 голосов
/ 23 октября 2019

Ниже приведен хук перед фиксацией, который помогает вам не фиксировать файлы, которые вы не хотите:

#!/bin/bash
git diff --cached --diff-filter=AM | grep -q gitblock
if [ $? -eq 0 ]
then 
  echo gitblock comment detected
  exit 1
fi

Вы должны сохранить его как .git/hooks/pre-commit в хранилище, которое вы хотите защитить. После того, как вы сделаете его исполняемым, он не позволит вам зафиксировать любой файл, содержащий текст «gitblock» в комментарии.

Для получения дополнительной информации: https://www.rdeeson.com/weblog/178/git-pre-commit-hook-to-block-accidental-commits

...