我有一个用python编写的pre-commit-hook,它对一个文件做了一些修改。现在,我还想添加这个文件,以包括pre-commit-hook所做的更改。
我试着用subprocess来做这个
subprocess.check_call(('git', 'add', filename))如果我在交互式python会话中尝试这样做,它会正确地添加文件,但是我的钩子不能工作。
我已经检查过了,钩子是否工作在正确的目录中。
如何以正确的方式添加文件?
编辑: My git版本为2.1.4
发布于 2016-11-30 15:58:57
有趣的是:只要预提交钩子真的在运行,git add就应该在1.5.4之后的任何Git版本中生效。参见Git存储库中的此承诺。
(我记得在某些版本的Git中没有正确地工作,但是不记得在任何特定版本中它被破坏了。)
如果这在您的特定Git版本中被破坏了,则可以让您的预提交钩子添加文件,运行自己的git commit来安排内部的递归提交而不是递归--这取决于您如何解决这个问题--然后当内部提交完成时,拒绝提交。这个解决方案很难看,因为它使每个提交看起来都失败了。
https://stackoverflow.com/questions/40889500
复制相似问题