Git
英语 ▾ 主题 ▾ 最新版本 ▾ git-fsmonitor--daemon 最后更新于 2.43.0

名称

git-fsmonitor—​daemon - 内置文件系统监视器

概要

git fsmonitor--daemon start
git fsmonitor--daemon run
git fsmonitor--daemon stop
git fsmonitor--daemon status

描述

一个守护进程,使用特定于平台的文件系统通知功能来监视工作目录中的文件和目录更改。

此守护进程直接与 git status 等命令通过 简单 IPC 接口通信,而不是使用速度较慢的 githooks[5] 接口。

此守护进程内置于 Git 中,因此不需要第三方工具。

选项

start

在后台启动守护进程。

run

在前景运行守护进程。

stop

停止当前工作目录中正在运行的守护进程(如果存在)。

status

如果当前工作目录正在被守护进程监视,则以零状态退出。

备注

此守护进程是一个长期运行的进程,用于监视单个工作目录并维护最近更改的文件和目录列表。如果命令(例如 git status)仅请求工作目录更改的摘要,并且可以避免扫描磁盘,则可以提高它们的性能。

core.fsmonitor 设置为 true 时(参见 git-config[1]),命令(例如 git status)将询问守护进程更改并自动启动它(如果有必要)。

有关更多信息,请参见 git-update-index[1] 中的“文件系统监视器”部分。

注意事项

fsmonitor 守护进程目前不知道子模块,也不知道如何过滤掉发生在子模块中的文件系统事件。如果 fsmonitor 守护进程正在监视一个超级仓库,并且在子模块的工作目录中修改了一个文件,它将报告更改(作为针对超级仓库发生的)。但是,客户端会正确忽略这些额外的事件,因此性能可能会受到影响,但不会导致错误的结果。

默认情况下,fsmonitor 守护进程拒绝与网络挂载的仓库一起工作;这可以通过将 fsmonitor.allowRemote 设置为 true 来覆盖。但是,请注意,fsmonitor 守护进程不能保证与所有网络挂载的仓库都能正常工作,因此此类用法被认为是实验性的。

在 Mac OS 上,各种 Git 命令与 fsmonitor 守护进程之间的进程间通信 (IPC) 通过 Unix 域套接字 (UDS) 完成,这是一种特殊类型的文件,它受原生 Mac OS 文件系统支持,但不受网络挂载的文件系统、NTFS 或 FAT32 支持。其他文件系统可能支持或不支持此功能;fsmonitor 守护进程不能保证与这些文件系统正常工作,因此此类用法被认为是实验性的。

默认情况下,套接字是在 .git 目录中创建的。但是,如果 .git 目录位于网络挂载的文件系统上,它将改为在 $HOME/.git-fsmonitor-* 中创建,除非 $HOME 本身位于网络挂载的文件系统上,在这种情况下,您必须将配置变量 fsmonitor.socketDir 设置为要创建套接字文件的 Mac OS 原生文件系统上的目录的路径。

如果上述目录(.git$HOMEfsmonitor.socketDir)中的任何一个都不在 Mac OS 原生文件系统上,fsmonitor 守护进程将报告一个错误,导致守护进程和当前运行的命令退出。

配置

本节中此行以下的所有内容都从 git-config[1] 文档中选择性地包含。内容与那里找到的内容相同

fsmonitor.allowRemote

默认情况下,fsmonitor 守护进程拒绝与网络挂载的仓库一起工作。将 fsmonitor.allowRemote 设置为 true 将覆盖此行为。仅在 core.fsmonitor 设置为 true 时生效。

fsmonitor.socketDir

此 Mac OS 特定选项(如果设置)指定用于创建 fsmonitor 守护进程与各种 Git 命令之间通信的 Unix 域套接字的目录。该目录必须驻留在 Mac OS 原生文件系统上。仅在 core.fsmonitor 设置为 true 时生效。

GIT

git[1] 套件的一部分

scroll-to-top