Я создал хук post-commit
git, который проверяет почтовый домен автора, и, если домен de не находится в домене моей компании, хук сбрасывает коммит и освобождает файлы коммита.
Если вам интересно, почему я хочу это сделать, это мера безопасности, позволяющая избежать ненастроенных git пользователей в pu sh хранилище.
Это код упомянутого хука:
#!/bin/bash
log=$(git log)
email=$(echo $log | grep -Po "(?<=\<)[^\>]+" | head -n 1)
if [[ ! $email == *"@company.com"* ]]; then
echo "">&2
echo "You wont be able to commit while you have unconfigured user.">&2
echo "">&2
echo "Your user is $email">&2
git reset HEAD~1
exit 1
fi
exit 0
Этот хук прекрасно работает в CLI. Проблема возникает, когда я фиксирую из Eclipse IDE с E GIT, где мне выдается следующая ошибка fatal: Unable to create '/path/my_project/.git/index.lock': File exists
. Я заметил, что причиной ошибки является команда git reset HEAD~1
.