Cursor だけで共通の Git ユーザーを使う方法(Windows)
VS CODEとGitアカウントを分けたくってAIに聞いて貰ったものを備忘録として書いてみました!
おんなじ感じでVScode insiderにも使えます。
「Cursor で開いたプロジェクトだけ、特定の user.name と user.email を必ず使いたい。けれど普段のシェルや他のツールには影響させたくない」──そんなときに使える、再現性の高い設定方法です。仕組みはシンプルで、Git が参照する“グローバル設定の場所”を環境変数で差し替え、Cursor をその環境変数付きで起動するだけ。拡張機能や統合ターミナルまで漏れなく反映されます。
- 対象: Windows(PowerShell / CMD)
- 目的: Cursor 内(拡張機能・UI・統合ターミナル)でのみ共通の Git ユーザーを使う
- 仕組み: 起動時に
GIT_CONFIG_GLOBALを渡し、グローバル設定ファイルの場所を~/.gitconfigから任意ファイルへ差し替える
TL;DR(最短コピペ)
1) Cursor 専用のグローバル設定ファイルを作る(例: D:\xammpp\htdocs\.gitconfig_cursor)
$cfg = @"
[user]
name = Your Name (Cursor)
email = you+cursor@example.com
[include]
path = ~/.gitconfig
"@
2) 環境変数付きで Cursor を起動する“ランチャー”を作る(以後はこれから起動)
$launcher = "$env:USERPROFILE\Launch-Cursor-With-GitConfig.cmd"
$content = @"
@echo off
set "GIT_CONFIG_GLOBAL=D:\htdocs\.gitconfig_cursor"
start "" "%LocalAppData%\Programs\Cursor\Cursor.exe"
"@
$content | Set-Content -Encoding ASCII $launcher
3) (保険)統合ターミナルにも環境変数を渡す
{
"terminal.integrated.env.windows": {
"GIT_CONFIG_GLOBAL": "D:\\htdocs\\.gitconfig_cursor"
}
}
4) 検証(必ずランチャーから起動した Cursor のターミナルで)
git config --show-origin user.name
git config --show-origin user.email
git -c user.useConfigOnly=true commit --allow-empty -m "cursor user check"
どうしてこの方法が確実?
- Git は起動時に
GIT_CONFIG_GLOBALが設定されていると、既定の~/.gitconfigではなく、そのパスのファイルを“グローバル設定”として読み込みます。 - Cursor の Git 拡張は、Cursor 本体のプロセス環境を引き継いで動くため、Cursor を環境変数付きで起動すれば UI も拡張も統合ターミナルも同じ設定を見ます。
git.pathを.batに差し替えるラッパー方式は拡張側と相性が悪く、spawn EINVALなどのエラーで落ちることがあります。Git 本体は素直にgit.exeを使い、Cursor“起動時”に環境を与えるのが安定です。
手順A: Cursor 専用グローバル設定を作る
ここでは D:\htdocs\.gitconfig_cursor に作ります。既存の ~/.gitconfig を生かしたい人向けに、include 付きのテンプレを用意しています。
$cfg = @"
[user]
name = Your Name (Cursor)
email = you+cursor@example.com
[include]
path = ~/.gitconfig
"@
$path = 'D:\\htdocs\\.gitconfig_cursor'
$cfg | Set-Content -Encoding ASCII $path
# 確認
Get-Content -Raw $path | Write-Output
path = ~/.gitconfig “@ $path = 'D:\\htdocs\\.gitconfig_cursor’ $cfg | Set-Content -Encoding ASCII $path # 確認 Get-Content -Raw $path | Write-Output
メモ:
[include] path = ~/.gitconfigは任意。入れておくと普段の設定(改行や差分ツールなど)を継承しながら、user.*だけ Cursor 用で上書きできます。- 完全に独立させたいなら
[include]の行を削除してください。
手順B: ランチャーを作って Cursor を“環境変数付きで”起動する
GIT_CONFIG_GLOBAL をセットしてから Cursor を起動する .cmd を作ります。以後はこのランチャーから Cursor を立ち上げる運用にします。
$launcher = "$env:USERPROFILE\Launch-Cursor-With-GitConfig.cmd"
$content = @"
@echo off
set "GIT_CONFIG_GLOBAL=D:\htdocs\.gitconfig_cursor"
start "" "%LocalAppData%\Programs\Cursor\Cursor.exe"
"@
$content | Set-Content -Encoding ASCII $launcher
# 中身の確認
Get-Content -Raw $launcher | Write-Output
ちょっとしたコツ:
- 初回起動後、このランチャーをタスクバーにピン留めしておくと迷いません。
- すでに開いている Cursor は一度すべて閉じ、必ずランチャーから起動し直してください(環境変数の継承が大事)。
手順C: 統合ターミナルにも明示反映(任意)
通常、統合ターミナルは起動元の環境を引き継ぎますが、設定にも書いておくとより安心です。
- ランチャーから Cursor を起動
- 設定(Settings)→ 右上の「Open Settings (JSON)」
- 既存の JSON に次を追記
{
"terminal.integrated.env.windows": {
"GIT_CONFIG_GLOBAL": "D:\\htdocs\\.gitconfig_cursor"
}
}
ポイント: JSON の中ではバックスラッシュは \\ と二重に書きます。
手順D: 動作確認
ランチャーから起動した Cursor の統合ターミナルで次を実行します。
git config --show-origin user.name
git config --show-origin user.email
例: file:D:/htdocs/.gitconfig_cursor と表示され、設定した値になっていれば OK。
コミットも通るか軽くチェックしておきましょう。
git -c user.useConfigOnly=true commit --allow-empty -m "cursor user check"
空コミットが成功すれば、UI からのコミットでもユーザー情報が正しく使われます。不要なら git reset --soft HEAD~ で戻せます。
よくある落とし穴と対処
git.pathに.batを設定してしまった- Git 拡張が
.bat実行でこけることがあります。git.pathはC:\\Program Files\\Git\\cmd\\git.exeのままにしておき、Cursor 自体をランチャーで起動してください。 - ランチャーを使わずに起動している
- 環境変数が渡らず
GIT_CONFIG_GLOBALが効きません。運用を「必ずランチャーから起動」に切り替えましょう。 - JSON のパスで
\をそのまま 1 本で書いた - JSON では
\\と二重にします。例:"D:\\htdocs\\.gitconfig_cursor"。 - どの設定が効いているか分からない
git config --show-origin --show-scope --get user.emailを実行すると、“どのスコープのどのファイル”が使われているかが分かります。- ヘルプ → 開発者ツール → 出力 → Git を開くと、拡張が使っている
git.exeや各コマンドのログも確認できます。
応用: 用途別にランチャーを分けて切り替える
仕事用と個人用でユーザーを分けたいなら、設定ファイルとランチャーをペアで増やすだけです。
例)仕事用の最小例:
'D:\\htdocs\\.gitconfig_cursor_work' | Set-Content -Encoding ASCII -Value @"
[user]
name = Your Name (Work)
email = you.work@example.com
"@
@"
@echo off
set "GIT_CONFIG_GLOBAL=D:\htdocs\.gitconfig_cursor_work"
start "" "%LocalAppData%\Programs\Cursor\Cursor.exe"
"@ | Set-Content -Encoding ASCII "$env:USERPROFILE\Launch-Cursor-Work.cmd"
ショートカット名やタスクバーのピン留め名で区別しておくと、切り替え忘れを防げます。
代替案: ディレクトリ条件付き include(アプリ限定にはならない)
「Cursor で扱うプロジェクトはすべて D:/htdocs/ 配下に置く」という運用なら、~/.gitconfig に条件付き include を書く方法もあります。ただしこれは“フォルダで適用”するため、Cursor 以外のツールから使った場合も影響します。
[includeIf "gitdir:D:/htdocs/**"]
path = D:/htdocs/.gitconfig_cursor
アプリ単位で切り替えたい(Cursor のみ)なら、本記事の“ランチャー方式”がより確実です。
FAQ / トラブルシュート(実践編)
- 著者が統一されているかを素早く確認したい
git log --format="%h %an <%ae> %s" -n 5で、直近コミットの著者とメールをざっと確認できます。- リポジトリ単位で一時的に別ユーザーを使いたい
git config user.name "Temp Name"git config user.email "temp@example.com".git/config(ローカル)に書かれ、グローバル設定を上書きします。戻すときは--unset。- 既存のコミットの著者を直したい(直近 1 件)
git commit --amend --reset-author --no-edit- 共有リポジトリでは履歴書き換えに注意(
git push --force-with-lease)。 - ランチャーを開いても Cursor が起動しない
- Cursor のパスが違う可能性。
%LocalAppData%\Programs\Cursor\Cursor.exeの有無を確認。ポータブル版ならそのパスに差し替えてください。 - 企業環境(プロキシ/セキュリティツール)でブロックされる
- 外部配布の
.cmd実行に制限がある場合があります。IT ポリシーに従い、必要ならランチャーの配置や署名について管理者に相談してください。
ロールバック(元に戻すには)
- ランチャーを使わずに Cursor を起動すれば、既定の
~/.gitconfigが使われます。 settings.jsonに入れたterminal.integrated.env.windows.GIT_CONFIG_GLOBALを削除すると、統合ターミナルにも渡らなくなります。D:\\htdocs\\.gitconfig_cursor自体は削除/リネームしても OK(必要ならバックアップを)。
まとめ
GIT_CONFIG_GLOBALを使い、Cursor を“環境変数付きで起動”するだけで、Cursor 内の Git 操作すべてに共通ユーザーを適用できます。git.pathはgit.exeのまま。ラッパーに差し替えず、起動プロセスに環境を与えるのが安定で確実。- ランチャーをタスクバーにピン留めして「いつもそこから起動」──これだけで運用がシンプルに回ります。
一度仕組みを作れば、あとは“起動の仕方”を変えるだけでアイデンティティを切り替えられます。安全・簡単・再現性高く運用していきましょう。