Cursor だけで共通の Git ユーザーを使う方法(Windows)

VS CODEとGitアカウントを分けたくってAIに聞いて貰ったものを備忘録として書いてみました!
おんなじ感じでVScode insiderにも使えます。

「Cursor で開いたプロジェクトだけ、特定の user.nameuser.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: 統合ターミナルにも明示反映(任意)

通常、統合ターミナルは起動元の環境を引き継ぎますが、設定にも書いておくとより安心です。

  1. ランチャーから Cursor を起動
  2. 設定(Settings)→ 右上の「Open Settings (JSON)」
  3. 既存の 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.pathC:\\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.pathgit.exe のまま。ラッパーに差し替えず、起動プロセスに環境を与えるのが安定で確実。
  • ランチャーをタスクバーにピン留めして「いつもそこから起動」──これだけで運用がシンプルに回ります。

一度仕組みを作れば、あとは“起動の仕方”を変えるだけでアイデンティティを切り替えられます。安全・簡単・再現性高く運用していきましょう。

IT

Posted by kuronyankotan