我想在提交时运行黑色以格式化所有暂存的 .py 文件。不幸的是,由于雇主网络 VPN 和限制,我无法使用pre-commit包,因为它在尝试加载 repo 时超时。
所以我决定编写自己的预提交钩子。目前我有这个
#!/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 找到的第一部分。第二部分需要某种过滤器,以仅从 diff-index 返回的列中获取 .py 文件。如何仅从列表中获取 .py 文件?
另外:我对 git hooks 很陌生。这是我和我的同事确保所有代码都用黑色格式化的可靠方法吗?