🔰はじめての方へ

【解決】Windows→Macに乗り換えたらGitが全部変更扱いになった時の対処法(Cursor使用)

Github
記事内に広告が含まれています。
スポンサーリンク

起きた問題

WindowsからMacBookに乗り換え後、CursorでGit管理しているプロジェクトを開いたところ

  • 変更していないのにほぼ全ファイルが変更扱い
  • ファイル名がオレンジ色(未コミット状態)
  • 1000ファイル以上変更扱いになっていた
  • コミットしようとすると処理が終わらない

■ 原因

主にこの2つでした。

① 改行コードの違い

  • Windows:CRLF
  • Mac:LF
わたし
わたし

Gitが「全部変更された」と誤認識しているようです


② ファイル権限の違い(Mac特有)

実行権限の差で変更扱いになる


■ 実際にやった解決手順(これで直った)

① Mac側のGit設定を変更(ターミナル)

git config --global core.autocrlf input
git config --global core.fileMode false

▼設定確認

git config --global --list

↓これが出ればOK

core.autocrlf=input
core.filemode=false

② Cursorでターミナルを開く

プロジェクトを開いた状態で実行↓

git add --renormalize .

③ エラー発生(ここでハマった)

fatal: not a git repository

→ 原因:ディレクトリが違った


④ ディレクトリを修正

1つ上の階層に移動↓

cd ../

その後↓

git status

→ ../ が消えたら正しい場所


⑤ 再度実行

git add --renormalize .
git status

→ 正しく差分が整理された


⑥ Mac特有ファイルを除外

.gitignore に追加↓

.DS_Store

その後↓

git rm -r --cached .DS_Store

■ 最終的な状態

git status

↓こんな感じになればOK

  • .DS_Store → 削除予定
  • .gitignore → 変更あり
  • 一部ファイル → 未追跡

→ 正常な状態


■ 最後の仕上げ

git diff

これで、何も出力されなければOK!


■ 補足①:謎の文字化けファイルについて

\343\202\263...

これは日本語ファイル名がエスケープ表示されてるだけ

なので問題なし!

「index.htmlコピー」みたいな日本語名が含まれているファイルの可能性高い


■ 補足②:やってはいけないこと

  • 1000ファイルそのままコミット
  • 状態確認せずpush
  • エラー無視

まとめ

今回の原因は👇

WindowsとMacの環境差によるGitの仕様

対策として👇

  • 改行コード設定を統一
  • ファイル権限差分を無視
  • 不要ファイルを除外

これで今後は同じ問題は起きなくなります。