0

我正在创建一个 Node.js 文件观察器(使用 Chokidar,但它也可以使用 Gulp)。每次我保存我的文件时,它都会对它做一些事情,比如传递 JSHint。

但是当我更改分支时,我的观察者会发疯,并将我的函数应用于在分支之间更改的所有文件。因此,我进行了验证以检查我的文件是否位于 Git 的“待提交”部分:

child_process.exec('cd '+ path +' && git status --porcelain', function (error, stdout, stderr) {...

我对我的代表执行“git status”,解析字符串并检查要提交的文件。到目前为止它正在工作。

但是当我更改分支时,Git 会暂时将分支之间的不同文件添加到“待提交”状态,导致我的代码仍然发疯。

如果我在cmd.exe我的另一个分支正在加载并输入git status时继续,它会显示大量文件正在更改,但在完成后它会恢复正常。

我可以检查进程“git.exe”是否在任务管理器上运行,但它会加上另一个验证(这个需要更长的时间,因为它列出了所有任务列表进程):

child_process.exec('tasklist | find "git"', function (error, stdout, stderr) {...

问题:如何检查仅在当前分支上提交的 Git 文件,即使在切换分支时也是如此?

谢谢!

4

0 回答 0