中文 (简体) ▾ 主题 ▾ 最新版本 ▾ 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

描述

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

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

此守护进程内置于 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