设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.43.1 → 2.49.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
描述
一个守护进程,用于使用平台特定的文件系统通知工具监视工作目录的文件和目录更改。
此守护进程使用 简单 IPC 接口(而不是较慢的 githooks[5] 接口)直接与 git status
等命令进行通信。
此守护进程内置于 Git 中,因此不需要第三方工具。
备注
此守护进程是一个长时间运行的进程,用于监视单个工作目录并维护最近更改的文件和目录的列表。如果命令只需请求工作目录更改的摘要,并可以避免扫描磁盘,则可以提高 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
、$HOME
或 fsmonitor.socketDir
)均未位于原生 Mac OS 文件系统上,则 fsmonitor 守护进程将报告一个错误,该错误将导致守护进程和当前正在运行的命令退出。
配置
本节中此行以下的全部内容都是从 git-config[1] 文档中选择性地包含的。内容与那里找到的内容相同
GIT
属于 git[1] 套件的一部分