【问题标题】:Where does git status get its information on changed files?git status 从哪里获得有关已更改文件的信息?
【发布时间】:2014-08-17 15:01:45
【问题描述】:

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

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

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

【问题讨论】:

    标签: git githooks git-status git-stage


    【解决方案1】:

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

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

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

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

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

    在“Customizing Git - An Example Git-Enforced Policy”中查看更多示例,使用 ruby​​:

    files_modified = `git diff-index --cached --name-only HEAD`.split("\n")
      files_modified.each do |path|
        # do your checks
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2011-10-21
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多