Git 预提交钩子如何判断它是否正在检查提交——全部?

Git 预提交钩子如何判断它是否正在检查提交——全部?,git,shell,command-line,Git,Shell,Command Line,git预提交钩子如何判断它前面的git提交命令是否带有-a/-all选项 如果没有-a,钩子应该只检查阶段性的更改 但是如果使用-a,则应检查所有已知文件。在任何情况下,只需检查阶段性更改即可。当钩子运行时,它将看到 要提交的所有更改都将被暂存。这包括变化 包括,因为正在使用commit-all。因此,这将给出正确的 这两种情况下的行为都不需要执行任何特殊操作。我使用的diff命令是git diff index-p-m HEAD。如何只进行阶段化处理?您可以使用git diff-cached-p

git预提交钩子如何判断它前面的git提交命令是否带有-a/-all选项

如果没有-a,钩子应该只检查阶段性的更改


但是如果使用-a,则应检查所有已知文件。

在任何情况下,只需检查阶段性更改即可。当钩子运行时,它将看到 要提交的所有更改都将被暂存。这包括变化 包括,因为正在使用commit-all。因此,这将给出正确的
这两种情况下的行为都不需要执行任何特殊操作。

我使用的diff命令是git diff index-p-m HEAD。如何只进行阶段化处理?您可以使用git diff-cached-p-M获得HEAD和索引之间的差异。