如何强制git发出警告或添加新文件?

如何强制git发出警告或添加新文件?,git,githooks,git-stage,Git,Githooks,Git Stage,我们都经历过这样一个痛苦的时刻:一个新特性在本地运行良好,但在部署时由于忘记添加新文件而中断 有没有办法让git发出警告或在执行git提交时自动添加新文件?这样的预提交钩子应该会对遗留文件发出警告: #!/bin/bash . git-sh-setup # for 'die' cmd git status --porcelain | while IFS= read -r line; do if [[ $line == \?\?* ]] ; then # if the file

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


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

这样的预提交钩子应该会对遗留文件发出警告:

#!/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
贾斯汀和沃勒:)

<>编辑:您还应该考虑使用一些“强>连续集成工具包,如HudSub或BuudBood——它可以执行更全面的检查,然后寻找丢失的文件:”


EDIT2:不幸的是,我没有成功地在循环中使用read,因此我认为可能无法让此钩子请求您的操作。

像这样的预提交钩子应该会对遗留文件发出警报:

#!/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
git config --global alias.commita '!git add . && git commit -a'
贾斯汀和沃勒:)

<>编辑:您还应该考虑使用一些“强>连续集成工具包,如HudSub或BuudBood——它可以执行更全面的检查,然后寻找丢失的文件:”

EDIT2:不幸的是,我没有成功地在循环中使用read,所以我认为可能无法让这个钩子请求您的操作

git config --global alias.commita '!git add . && git commit -a'
之后,只需使用:

git commita ..
安装git提交-a。这也将添加新文件

之后,只需使用:

git commita ..

安装git提交-a。这也会添加新文件。

在提交之前,始终运行
git status
,您是否总是在不检查索引中的内容(待提交内容)的情况下盲目提交?此外,这就是git提交-a所做的。。。在您的工作树中提交每一个未被忽略的文件。@ KurZeMeD,<代码> GIT-COMPION-<代码>不考虑未跟踪的文件——引用手册中描述<<代码>的部分代码>选项:“告诉命令自动地对已修改和删除的文件进行分级,但是您没有告诉Git的新文件不受影响。”是的,我的错误仍然存在,建议在
git提交之前执行
git status
。如果你盲目地
git-add.
或类似的东西,你可能会在项目历史记录中添加未被忽略的垃圾。如果将其推送到远程,则不容易修复。在提交之前,请始终运行
git status
,您是否总是在不检查索引中的内容(待提交内容)的情况下盲目提交?此外,这就是git提交-a所做的。。。在您的工作树中提交每一个未被忽略的文件。@ KurZeMeD,<代码> GIT-COMPION-<代码>不考虑未跟踪的文件——引用手册中描述<<代码>的部分代码>选项:“告诉命令自动地对已修改和删除的文件进行分级,但是您没有告诉Git的新文件不受影响。”是的,我的错误仍然存在,建议在
git提交之前执行
git status
。如果你盲目地
git-add.
或类似的东西,你可能会在项目历史记录中添加未被忽略的垃圾。如果将其推到远程,则不容易修复。