简介
我想以高效的方式检测我本地git仓库中的本地更改。这意味着检测哪些文件在本地被修改,以及未进行版本控制的文件。任何未提交的更改/文件添加都必须被捕捉到。
我的尝试
目前我所得到的(代码片段): https://gist.github.com/kevin-smets/02bda148a5330f350e6b
这是一个可以独立运行或作为git插件运行的脚本。它基本上做的就是每两秒钟运行一次git status --porcelain
命令,解释结果以检查哪些文件发生了更改。然而,在运行时,它会不断占用大约8%的CPU。我尝试了git --diff-files
和各种其他命令,但都导致高CPU使用率 :(
为什么?
我想将这个文件列表提供给grunt watch进程。目前我的代码库有大约15k个文件并且还在增长。监视所有这些文件将变得简直不可能。我已经应用了静态过滤器来限制被监视的文件数量,但每次想要在定义的过滤器之外编辑一个文件时,手动更改它变得很麻烦。
一个想法
我想到的一个想法是,IntelliJ / WebStorm(我的当前IDE)如何监视GIT仓库?我尝试进入社区版的源代码,但是,我无法理解其中的内容:)。WebStorm肯定有一种不会占用CPU的方式来捕捉这些变化,即使它们是在IDE之外进行的。我想知道GIT是否有某种事件系统,但我找不到任何相关的信息。
感谢您的阅读
如有任何帮助,将非常感激!
git
检查文件是否被跟踪即可? - Attila O.