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

描述

一個使用平台特定的檔案系統通知機制,監看工作目錄中檔案和目錄變更的守護進程。

此守護進程使用簡單 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