设置和配置
获取和创建项目
基本快照
分支与合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.43.1 → 2.52.0 无更改
-
2.43.0
2023-11-20
- 2.39.1 → 2.42.4 无更改
-
2.39.0
2022-12-12
- 2.36.1 → 2.38.5 无更改
-
2.36.0
2022-04-18
概要
git fsmonitor--daemon start git fsmonitor--daemon run git fsmonitor--daemon stop git fsmonitor--daemon status
描述
一个守护进程,使用特定于平台的 [文件系统通知设施](https://en.wikipedia.org/wiki/Filesystem_event_notification) 来监视工作目录中的文件和目录更改。
该守护进程直接与 git status 等命令使用 [simple IPC](api-simple-ipc.html) 接口进行通信,而不是使用较慢的 [githooks[5]](githooks.html) 接口。
该守护进程内置于 Git 中,因此不需要第三方工具。
说明
此守护进程是一个长期运行的进程,用于监视单个工作目录并维护最近更改的文件和目录列表。如果 git status 等命令只需询问工作目录更改的摘要并避免扫描磁盘,其性能可以提高。
当 core.fsmonitor 设置为 true 时(请参阅 [git-config[1]](git-config.html)),git status 等命令将向守护进程询问更改,并自动启动它(如果需要)。
有关更多信息,请参阅 [git-update-index[1]](git-update-index.html) 中的“文件系统监视器”部分。
注意事项
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、$HOME 或 fsmonitor.socketDir)不在 Mac OS 原生文件系统上,fsmonitor 守护进程将报告一个错误,导致守护进程和当前正在运行的命令退出。
配置
本节中以下所有内容均从 git-config[1] 文档中选择性地包含。内容与彼处相同: