防止承诺而不添加

时间:2017-03-16 20:35:21

标签: git

我在Git中的正常工作流程是进行更改,然后提交整个目录而不进行暂存(git commit . -m "My message")。这在大多数情况下都可以正常工作,但有时我会在使用git add添加新文件之前无意中提交。当发生这种情况时,我通常只是修改提交,但如果我已经推送了提交并做了更多,则更难修复。我想首先阻止它。

我想如果我的工作区中有未添加的文件,我希望git commit ...失败,并让我选择加入提交而不添加(可能带有标记)。我可以使用预提交挂钩吗?

2 个答案:

答案 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标志。