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

描述

一個守護程序,使用平臺特定的檔案系統通知工具來監視工作目錄的檔案和目錄更改。

該守護程序直接與諸如 git status 等命令透過 簡單 IPC 介面進行通訊,而不是使用較慢的 githooks[5] 介面。

該守護程序內置於 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