🐌

VSCode の Source Control で Changes が自動更新されないときは files.exclude を指定してみよう

2025/02/07に公開

事象

VSCode の Source Control は、デフォルトだとファイルを保存すれば差分が自動的に Changes に現れてくる。

が、ファイルを保存しても Source Control の Changes に差分が出て来なくなることがあった。Refreshのボタンを押せば差分が現れるが、ちょっと不便。

モノレポであるなどの理由でリポジトリの規模が大きくなってきたときに、VSCode が読み込んでいるファイルが多すぎるせいでスキャンが終わらないことが原因らしい。

対策

Cmd + Shift + P -> >Preferences: Open User Settings (JSON) を開き、以下の内容を設定する。設定内容は各々の言語や環境に応じて、不要なものを指定すればOK。

settings.json
{
    ...
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "**/Thumbs.db": true,
        "**/node_modules": true
    }
}

"**/Thumbs.db": true, まではVSCodeのデフォルト設定で、そこに **/node_modules を追加した形。反映されないときはVSCodeを再起動する。

この設定に含めたフォルダは Folders からも表示が消えるが、個人的には表示されなくても不便しないフォルダたちなので問題はなかった。

お礼

X で嘆いていたら解決策をさっと教えてくれた @jinjor に感謝です。

https://x.com/jinjor/status/1887510208395813094

SocialPLUS Tech Blog

Discussion