はじめに
Cursor を使って開発していると、
「このドキュメント、GitHubには上げたくないけど、Cursorには読ませたい」
という状況に出くわすことがあります。
例えば、他部署と共同で管理している仕様書が
Google スプレッドシートや Excel で運用されているケースなど
この場合、よくあるのがcsv化して配置してしまうというのが一つの手ですが問題として
- スプレッドシートが更新されるたびに同期が必要になる
- 更新漏れで差分が発生する
- 仕様書を二重管理することになる
といった問題が起きやすくなります。
では、GitHub に上げないよう.gitignoreを入れれば解決するかというと、そう単純でもありません。
.gitignore に入れたファイルは、Cursor側でも自動的に無視されてしまうためです。
うまく動かない理由
ポイントはCursorのデフォルトの無視ルールにあります。
以下に記述されている通り、Cursorにはデフォルトの無視ルールが存在し
- Cursor側があらかじめ用意している無視リスト
-
.gitignoreに記載されたファイル
の両方がコンテキストから外されます。
そのため、GitHubに上げないため.gitignoreファイルに入れたファイルは、Cursorのデフォルト挙動により 自動的にコンテキストからも除外されます。
対処法
Cursorには.cursorignoreという専用のignoreファイルを設定できます。
またこのignoreファイルは.gitignoreと同じ記法を使用でき、!による否定も使用することができます。
よって以下のように
docs/**
GitHub には上げない
!docs/**
Cursor では無視しない(=読ませる)
という設定が可能になります。
おまけ
環境変数としてenvファイルを利用することが多くあると思います。
この時、機密情報はシークレットで扱い設定値を環境変数で利用する場合、よしなにCursorにもenvは知ってほしい時があります(例:.env.local、.env.exampleなど)
ただこの場合、Cursorはデフォルトの無視リストに.env*が登録されているため認識できません。
この時も.cursorignoreを使用することで同じようにCursorに認識させることが可能になります。
APIキーなどは当然アウトですが、問題ない場合には適時設定してみても良いかもしれません。