簡體中文 ▾ 主題 ▾ 最新版本 ▾ 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

描述

一個守護程序,使用特定於平臺的 [檔案系統通知設施](https://en.wikipedia.org/wiki/Filesystem_event_notification) 來監視工作目錄中的檔案和目錄更改。

該守護程序直接與 git status 等命令使用 [simple IPC](api-simple-ipc.html) 介面進行通訊,而不是使用較慢的 [githooks[5]](githooks.html) 介面。

該守護程序內置於 Git 中,因此不需要第三方工具。

選項

start

在後臺啟動守護程序。

run

在前臺執行守護程序。

stop

停止當前工作目錄中正在執行的守護程序(如果存在)。

status

如果守護程序正在監視當前工作目錄,則以零狀態退出。

說明

此守護程序是一個長期執行的程序,用於監視單個工作目錄並維護最近更改的檔案和目錄列表。如果 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$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] 套件的一部分