Por Anónimo (no verificado) , 29 Abril 2026

El daemon integrado

Git 2.36 introdujo un daemon fsmonitor integrado, eliminando la necesidad de servicios externos como Watchman. Se ejecuta como git fsmonitor--daemon, escucha eventos del SO y responde a las consultas de Git con la lista de rutas cambiadas.

Ciclo de vida

git config core.fsmonitor true
git status
git fsmonitor--daemon status
git fsmonitor--daemon stop
git fsmonitor--daemon run

Cómo se integra

Cuando core.fsmonitor=true, Git pregunta al daemon por las rutas cambiadas. El daemon responde con un delta desde el token de consulta anterior.

Verificar speedup

time git -c core.fsmonitor=false status
time git -c core.fsmonitor=true status
GIT_TRACE2_PERF=1 git status 2>&1 | grep fsmonitor

Uso de recursos

sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl fs.inotify.max_user_instances=8192

Múltiples worktrees

Cada worktree obtiene su propio daemon.

Logging

Los logs van a .git/fsmonitor--daemon.log cuando se inicia en debug.

Errores comunes

Ejecutar en filesystems de red donde los eventos de cambio no son confiables (NFS, SMB).

Watchman vs integrado

El daemon integrado es la opción recomendada por defecto.