git python 预提交挂钩以添加文件
git python pre-commit hook to add files
我有一个用 python 编写的 pre-commit-hook
,它对文件进行了一些更改。现在我还想添加此文件,以包含 pre-commit-hook
所做的更改。
我尝试使用 subprocess
来做到这一点
subprocess.check_call(('git', 'add', filename))
如果我在交互式 python 会话中尝试此操作,它会正确添加文件,但我挂钩它不起作用。
我已经检查过了,钩子在正确的目录中工作。
如何正确添加文件?
编辑:
我的 git
版本是 2.1.4
有趣:只要预提交挂钩确实是运行ning,git add
应该在任何Git 1.5.4 之后的版本中生效。请参阅 Git 存储库中的 this commit Git。
(我记得它在 Git 的某些版本中无法正常工作,但不记得它在任何特定版本中被破坏。)
如果这在您的特定 Git 版本中被破坏,另一种方法是让您的预提交挂钩添加文件,运行 它自己的 git commit
安排内部递归提交 not 再次递归——这取决于你如何解决这个问题——然后当内部提交完成时,拒绝提交.这个解决方案很丑陋,因为它使每个提交似乎都失败了。
我有一个用 python 编写的 pre-commit-hook
,它对文件进行了一些更改。现在我还想添加此文件,以包含 pre-commit-hook
所做的更改。
我尝试使用 subprocess
来做到这一点
subprocess.check_call(('git', 'add', filename))
如果我在交互式 python 会话中尝试此操作,它会正确添加文件,但我挂钩它不起作用。
我已经检查过了,钩子在正确的目录中工作。
如何正确添加文件?
编辑:
我的 git
版本是 2.1.4
有趣:只要预提交挂钩确实是运行ning,git add
应该在任何Git 1.5.4 之后的版本中生效。请参阅 Git 存储库中的 this commit Git。
(我记得它在 Git 的某些版本中无法正常工作,但不记得它在任何特定版本中被破坏。)
如果这在您的特定 Git 版本中被破坏,另一种方法是让您的预提交挂钩添加文件,运行 它自己的 git commit
安排内部递归提交 not 再次递归——这取决于你如何解决这个问题——然后当内部提交完成时,拒绝提交.这个解决方案很丑陋,因为它使每个提交似乎都失败了。