我们都经历过一个痛苦的时刻,新功能在本地运行良好,但在部署时由于我们忘记添加新文件而中断。
有没有办法让 git 在git commit -a
执行时发出警告或自动添加新文件?
像这样的预提交钩子应该警告剩余文件:
#!/bin/bash
. git-sh-setup # for 'die' cmd
git status --porcelain | while IFS= read -r line;
do
if [[ $line == \?\?* ]] ; then # if the file begins with ?? it's untracked by git
die "Uncommited files left!" # this will always terminate commit
# say "Uncommited files left!" # this will just print the warning
fi
done
只需将其添加到您的 repo 的预提交钩子和 voile :)
编辑:您还应该考虑使用一些持续集成工具包,例如 Hudson 或 Buildbot - 它可以执行更全面的检查,然后查找丢失的文件:)
EDIT2:不幸的是,我没有成功在循环内使用 read 所以我认为可能无法让这个钩子要求你采取行动。
git config --global alias.commita '!git add . && git commit -a'
之后只需使用:
git commita ..
相反git commit -a
。这也会添加新文件。