如何在执行'git merge'或'git checkout branch'时抑制文件更改事件

时间:2013-07-05 02:05:23

标签: git filesystemwatcher

NodeJS fs.watch非常适合监听文件事件,我们希望用它来自动将sass文件编译为css文件,或将咖啡脚本自动编译为js脚本。

但有一个问题令我们感到困惑。由于我们在执行'git merge'或'git checkout branch'时使用git,因此应该过滤很多文件更改事件。

如何抑制这些不必要的事件?

1 个答案:

答案 0 :(得分:0)

一种方法是确保任何git操作(合并/检出)通过包装器或别名或git设置某种标志(如文件“git_operation_in_progress”)。

如果您的fs.watchFile(filename, [options], listener)的侦听器检测到标志文件的更改,则该侦听器可以检测到,但忽略(即不采取任何操作),所有其他文件的更改,向上直到'git_operation_in_progress'再次改变或消失。