git fsmonitor--daemon 占用目录,导致无法修改

当我通过命令 git clone 目录然后导入 IDE 操作时,由于想修改目录名,就退了 IDE,再修改目录名,系统提示我文件夹正在使用:

通过 LockHunter (或者PowerToys) 发现占用该目录的进程,右键打开。

打开后如下所示

PowerToys查询的结果

为什么会有大量 git 占用目录呢?打开任务管理器发现好多:

右键增加命令行列后如上图所示,大量 git fsmonitor--daemon 命令在运行。

官方文档: https://www.git-scm.com/docs/git-fsmonitor--daemon

介绍: 这个守护进程是一个长时间运行的进程,用于监视单个工作目录并维护最近更改的文件和目录的列表。 git status 之类的命令如果只要求对工作目录的更改进行汇总并且可以避免扫描磁盘,则可以提高性能。

通过文档中的命令可以关闭,打开占用的 config 目录,输入下面的命令:

1
git fsmonitor--daemon stop

关闭后刷新LockHunter:

关闭刚刚输入命令的Terminal窗口,切换文件浏览器的路径,再次刷新:

此时就可以修改文件名了。

此时只是解决了这一个目录,可以通过下面命令在PowerShell关闭所有git进程:

1
Get-Process -Name "git" | Stop-Process

当在 git 目录进行操作时,该进程会再次启动

git fsmonitor--daemon 的目的是为了提升性能,不建议关闭,如果想关闭,可以通过下面的命令关闭:

1
2
3
4
5
# 在某个git目录下面执行,关闭当前git目录
git config core.fsmonitor false

# 关闭全局
git config --global core.fsmonitor false

global core.fsmonitor false



git fsmonitor--daemon 占用目录,导致无法修改
https://blog.mybatis.io/post/e3095632.html
作者
Liuzh
发布于
2023年5月22日
许可协议