我正在尝试使用 Git 预提交挂钩来运行一些样式检查并自动生成一个 AUTHORS 文件,该文件使用 git shortlog 提取所有贡献者的名称。
我的预提交脚本包含以下内容:
#!/bin/sh
set -e
bin/update-authors.sh
...
update-authors.sh 文件包含以下内容:
#!/bin/sh
set -e
# Get a list of authors ordered by number of commits
# and remove the commit count column
AUTHORS=$(git --no-pager shortlog -nse | cut -f 2-)
if [ -z "$AUTHORS" ] ; then
echo "Authors list was empty"
exit 1
fi
# Display the authors list and write it to the file
echo "$AUTHORS" | tee "$(git rev-parse --show-toplevel)/AUTHORS"
后一个脚本可以直接从终端正常工作,但仅在预提交挂钩期间,它会因“作者列表为空”而出错。我无法弄清楚它为什么这样做 - 有什么想法吗?