原文(日本語に翻訳)
読み取り専用gitコマンドが--no-optional-locksフラグを追加することでmacOSのFSEventsファイルウォッチャーループを引き起こしていた問題を修正しました(anthropics/claude-code#25750)
原文(英語)
Fixed read-only git commands triggering FSEvents file watcher loops on macOS by adding --no-optional-locks flag (anthropics/claude-code#25750)
概要
macOSのFSEvents APIはファイルシステムの変更を監視するメカニズムです。gitの一部の読み取り専用コマンド(git status、git logなど)は内部でロックファイルを一時的に作成しますが、このロックファイルの作成がFSEventsを通じてClaude Codeのファイルウォッチャーをトリガーし、さらにgitコマンドが実行されるという無限ループが発生していました。--no-optional-locks フラグを追加することで、gitがオプショナルなロックファイルを作成しなくなり、このループが防止されます。
基本的な使い方
この修正はClaude Code内部で自動的に適用されます。ユーザーが明示的に設定する必要はありません。
bash
# Claude Codeがgitコマンドを実行する際(内部的に)
# 修正前: git status(ロックファイルを作成してFSEventsループを引き起こす)
# 修正後: git status --no-optional-locks(ロックファイルを作成しない)
# ユーザーとしての使用方法は変わらない
claude
> このリポジトリのgit statusを確認してください
# 内部的に --no-optional-locks フラグが付加されて実行される実践例
ユースケース1: 大規模リポジトリでの作業
大きなリポジトリでの作業中にCPU使用率が高くなる問題が解消されます。
bash
# 修正前の問題の症状:
# 1. Claude Codeがgit statusを実行
# 2. gitがロックファイルを作成
# 3. FSEventsがロックファイルの変更を検知
# 4. Claude Codeのファイルウォッチャーが起動
# 5. 再びgit statusが実行される → 無限ループ
# 修正後の正常な動作:
# Claude Code内部でgitコマンドを実行する場合
git status --no-optional-locks
# ロックファイルを作成しないため、FSEventsがトリガーされない
# macOSのactivitymonitorでCPU使用率が低下していることを確認できるユースケース2: ファイル変更の自動検知と連携
Claude Codeがファイルの変更を監視しながらgitコマンドを使う場合。
bash
# プロジェクトディレクトリでClaude Codeを起動
claude
> このプロジェクトの変更を監視しながら、git logで最近のコミットを表示してください
# 修正前: git logの実行がFSEventsループを引き起こしてCPUを高負荷にしていた
# 修正後: --no-optional-locksにより正常に実行される
# 内部的に実行されるコマンド:
# git log --no-optional-locks -20 --onelineユースケース3: 継続的なgit操作を含む開発ワークフロー
頻繁にgitコマンドを使う開発作業でのパフォーマンス改善。
bash
claude
> 以下の作業を繰り返し実行してください:
> 1. git statusで変更を確認
> 2. 変更があればgit diffで内容を確認
> 3. 問題があれば修正を提案
# 修正後: この繰り返し操作でもFSEventsループが発生しない
# CPUとメモリの使用量が安定する注意点
--no-optional-locksフラグはgitの読み取り操作のパフォーマンスに実質的な影響を与えません。- この問題はmacOS固有の問題です。LinuxやWindowsでは同様の問題は発生しませんでした。
- gitのバージョンによっては
--no-optional-locksフラグの動作が異なる場合があります(git 2.15以降で利用可能)。 - この修正はClaude Codeが内部でgitコマンドを実行する場合に自動的に適用されます。ユーザーが手動でgitコマンドを実行する場合は影響しません。
- FSEventsループが発生していた場合、Macのファンが回りやすくなったり、バッテリー消費が増えたりする症状が見られることがありました。