2

Git 状态提供有关存储库中已修改文件的信息(在未跟踪或暂存的文件中)我希望能够访问这些文件列表 - 在通过执行提交之前对这些文件执行一些代码质量检查。挂钩

如果我可以访问此文件列表,请告诉我。

顺便说一句,我是 Git 新手。所以,如果我在假设中犯了错误,请放轻松

4

1 回答 1

0

那将是一个预提交钩子,就像每个 git 安装附带的钩子一样:templates/hooks--pre-commit.sample.

一个更复杂的例子是项目git-pylint-commit-hook例如,用于检查 Python 代码质量。该钩子将检查以 .py 结尾或包含 python 的 she bang (#!) 的文件。

钩子首先pre-commit运行,甚至在您输入提交消息之前。
它用于检查即将提交的快照、查看您是否忘记了某些内容、确保测试运行或检查您需要在代码中检查的任何内容。

从这个钩子中退出非零会中止提交,尽管您可以使用 git 绕过它commit --no-verify

您可以检查代码样式(运行 lint 或类似的东西)、检查尾随空格(默认挂钩就是这样做的)或检查有关新方法的适当文档。

在 ruby​​ 中的“自定义 Git - 示例 Git 强制策略”中查看更多示例:

files_modified = `git diff-index --cached --name-only HEAD`.split("\n")
  files_modified.each do |path|
    # do your checks
  end
end
于 2014-08-17T15:03:47.090 回答