我在Git中的正常工作流程是进行更改,然后提交整个目录而不进行暂存(git commit . -m "My message"
)。这在大多数情况下都可以正常工作,但有时我会在使用git add
添加新文件之前无意中提交。当发生这种情况时,我通常只是修改提交,但如果我已经推送了提交并做了更多,则更难修复。我想首先阻止它。
我想如果我的工作区中有未添加的文件,我希望git commit ...
失败,并让我选择加入提交而不添加(可能带有标记)。我可以使用预提交挂钩吗?
答案 0 :(得分:1)
您可以使用pre-commit hook检查未上传的文件。
您可以使用以下内容列出未暂存的新文件:
git ls-files --others --exclude-standard
这里有关于如何添加自己的提交挂钩的handy post
答案 1 :(得分:0)
您可以使用以下内容列出未分级的新文件:
git ls-files --others --exclude-standard
它的git commit hook看起来像这样:
#!/bin/sh
if [[ `git ls-files --others --exclude-standard` ]];
then
echo "You have unadded files in your workspace";
exit 1;
fi
要选择退出单个提交的检查,请在提交时使用--no-verify
标志。