我知道运行 git-diff 和其他工具可以识别存储库中的更改,但是当我进行部分提交时,我只需要将已提交的文件(而不是所涉及的整个文件集)传递给预提交 Hook 。
例如,我修改了三个文件,只提交了两个,我希望预提交 Hook 知道这两个文件的名称。
git status --porcelain
M A.c
M B.c
M C.h
然后我执行:
git commit -m "two files only" A.c B.c
pre-commit 钩子(Hook)如何只获取两个文件的列表?
最佳答案
预提交在提交过程的开始运行... @Vince 的链接是要查看的链接。 Hook 运行后,您的脚本可以使用 git diff --cached --name-only
获取预提交脚本中暂存文件的名称。即使用户为提交准备了更多内容,但仅请求在命令行上提交文件的子集,该命令也能正常工作。
关于git - 预提交 Hook 获取部分提交的文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12170523/