git python预提交钩子来添加文件

时间:2016-11-30 13:20:26

标签: git python-2.7 pre-commit-hook

我在python中编写了pre-commit-hook,它对文件进行了一些更改。现在我还想添加此文件,以包含pre-commit-hook所做的更改。

我尝试使用subprocess来执行此操作

subprocess.check_call(('git', 'add', filename))

如果我在交互式python会话中尝试这个,它会正确地添加文件,但我不知道它是否工作。
我已经检查过,钩子的工作形式正确。

如何以正确的方式添加文件?

修改 我的git版本是2.1.4

1 个答案:

答案 0 :(得分:1)

有趣:只要预提交挂钩真正运行,git add应该在1.5.4之后的任何Git版本中生效。请参阅Git存储库中的this commit以获取Git。

(我记得在某些版本的Git中没有正常工作,但不要记得它在任何特定版本中都被破坏了。)

另一种方法是,如果你的特定Git版本中断了,那就是让你的预提交钩子添加文件,运行自己的 git commit,安排内部,递归提交再次递归 - 它取决于你如何解决这个问题 - 然后当内部提交完成时,拒绝提交。这个解决方案很难看,因为它会使每次提交都失败。