Я хотел бы запустить черный цвет, чтобы отформатировать все поэтапные файлы .py при фиксации. К сожалению, из-за сети VPN работодателя и ограничений я не могу использовать предварительную фиксацию, потому что время ожидания истекает при попытке загрузить репо.
Поэтому я решил написать свой собственный хук перед фиксацией. В настоящее время у меня есть это
#!/bin/sh
# Check if this is the initial commit
if git rev-parse --verify HEAD >/dev/null 2>&1
then
echo "pre-commit: About to create a new commit..."
against=HEAD
else
echo "pre-commit: About to create the first commit..."
against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi
# Autoformat with black
echo "pre-commit: Autoformatting Python code with black"
black $(git diff-index --cached --name-only --diff-filter=d $against)
Первую часть я нашел в Atlassian. Во второй части нужен какой-то фильтр, чтобы брать только файлы .py из столбца, который возвращается с помощью diff-index. Как получить из списка только файлы .py?
Также: я новичок в git-хуках. Это надежный способ для меня и моих коллег убедиться, что весь код отформатирован черным?
git add
измененные файлы в конце хука. - person phd   schedule 21.11.2020