我正在开发验证和代码检测工具,以便与各种提交钩子(包括Git钩子)集成。
https://github.com/miohtama/vvv
目前在每次提交时对整个项目代码库运行验证器和代码检测器。然而,只针对更改的文件运行它们会更加优化。为此,我需要在我的Git precommit钩子(使用Python语言)中知道更改的文件列表。
https://github.com/miohtama/vvv/blob/master/vvv/hooks/git.py
我有哪些选项可以提取更改的文件列表(使用Python语言)?
sys.exit("some string")
代替print("some string"); sys.exit(1)
。您还可以使用git diff -z ...
,然后在\x00
字节处拆分输出。 - torekgit stash
。请参阅http://codeinthehole.com/writing/tips-for-using-a-git-pre-commit-hook/。 - user1071136git stash
中有一个小错误,如果索引版本有更改并且当前工作目录版本将其更改回先前提交中的内容(即HEAD
),则git stash --keep-index
会丢失工作目录版本。(当然,这仍然在HEAD
中。但是,在预提交钩子中使用git stash
会出现一些问题。) - torek