2

我们都经历过一个痛苦的时刻,新功能在本地运行良好,但在部署时由于我们忘记添加新文件而中断。

有没有办法让 git 在git commit -a执行时发出警告或自动添加新文件?

4

2 回答 2

3

像这样的预提交钩子应该警告剩余文件:

#!/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 所以我认为可能无法让这个钩子要求你采取行动。

于 2012-06-07T12:59:51.193 回答
1
git config --global alias.commita '!git add . && git commit -a'

之后只需使用:

git commita ..

相反git commit -a。这也会添加新文件。

于 2012-06-07T13:22:01.240 回答