Cursor で開発したプログラムを初めて Git にコミットする際、「LF will be replaced by CRLF」などの警告に戸惑ったり、「プログラム/ does not have a commit checked out」というエラーが出た経験はありませんか?本記事では、これらの問題を整理し、解決方法と合わせて GitHub との連携までを徹底解説します。
✅ 目次
- Cursor から Git コミットの基本
- 警告:「LF will be replaced by CRLF」って何?
- エラー:「プログラム/ does not have a commit checked out」原因と対処
- GitHub リモートリポジトリとの連携方法(HTTPS / SSH)
- まとめと推奨設定
1. Cursor → Git コミットの基本フロー
Cursor は VS Code ベースのコードエディタなので、Git の操作はターミナルでも GUI でも実現可能です。
ターミナルでの基本操作
git init # 新しいリポジトリの初期化
git add . # 全ファイルをステージ
git commit -m "初回コミット" # 初回コミット
Cursor 内 GUI 操作
左の「Source Control」アイコンから、変更ファイルを選んで Commit ボタンを押すだけ。
2. 警告:「LF will be replaced by CRLF」って何?
これは改行コードの差異(Windows の CRLF と Unix の LF)によるもので、Git が自動変換を行おうとしているときに出る警告です。
Windows では CRLF、Linux/macOS では LF が使われ、これが混在すると「改行だけで差分が出る」などのトラブルの原因になります :contentReference[oaicite:0]{index=0}。
2‑1. core.autocrlf 設定
| 環境 | 推奨設定 | 動作 |
|---|---|---|
| Windows | git config --global core.autocrlf true | チェックアウト時に LF → CRLF に変換し、コミット時には CRLF → LF に変換 |
| macOS/Linux | git config --global core.autocrlf input | コミット時に CRLF → LF のみ変換 |
この設定により、警告は減少し、コードの一貫性も保たれます :contentReference[oaicite:1]{index=1}。
2‑2. .gitattributes で強制ルールを定める
個別プロジェクトにルールを埋め込みたいなら、ルートに .gitattributes を配置しましょう。以下は一般的な設定例です:
* text=auto
*.sh text eol=lf # シェルスクリプトは常に LF
*.bat text eol=crlf # Windows バッチは常に CRLF
*.png binary # 画像などは変換しない
これにより、混在によるトラブルや警告をさらに抑えられます :contentReference[oaicite:2]{index=2}。
2‑3. 改行設定反映後の再適用
設定を変更したら、次のようにして一括適用します:
git add --renormalize .
git commit -m "Normalize line endings"
全ファイルに設定反映され、状態がクリーンになります :contentReference[oaicite:3]{index=3}。
微細な確認には git ls-files --eol が便利です :contentReference[oaicite:4]{index=4}。
3. エラー:「プログラム/ does not have a commit checked out」原因と対処
このエラーは、…
- サブモジュール:`プログラム/` が git サブモジュールなら、`cd プログラム && git checkout main` などで解決。
- 空ディレクトリ:Git は空フォルダを管理できないので、
.gitkeepを入れてから add。 - テンプレートや中身が未設定のフォルダなら、一時的に除外して後回しにしても OK。
エラーが出る場合は中身構成を確認し、必要なら補足情報をご提供ください。
4. GitHub リモート連携
GitHub への push ~ pull を行うには、HTTPS または SSH のいずれかがおすすめです。
4‑1. HTTPS(手軽だが毎回トークン入力が必要)
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git push -u origin main
初回は GitHub の Username + Personal Access Token(PAT)を使用します。
4‑2. SSH(初期設定は必要だが以降は快適)
- SSH 鍵の生成:
ssh-keygen -t ed25519 -C "you@example.com" - 公開鍵を GitHub に登録(Settings → SSH keys)
- リモート URL を SSH に変更:
git remote set-url origin git@github.com:ユーザー名/リポジトリ名.git ssh -T git@github.comで接続テスト(成功コメントが返るはず)git push -u origin mainして完了
5. まとめと推奨設定
- core.autocrlf:Windows は true、それ以外は input。
- .gitattributes:プロジェクト固有ルールで改行を明示。
- 再適用:変更後は
git add --renormalize .済ませて clean に。 - サブモジュール or 空フォルダ:構造と用途に応じて適切に管理・除外。
- HTTPS vs SSH:長期運用なら SSH、手軽なら HTTPS + PAT。
補足リソース
- Gitドキュメント:
.gitattributesの仕組み :contentReference[oaicite:5]{index=5} - GitHub公式:改行設定について :contentReference[oaicite:6]{index=6}
- StackOverflow:「git ls-files –eol」による改行ステータス確認方法 :contentReference[oaicite:7]{index=7}
まとめ
Cursor で作ったコードも、Git の基本操作や改行設定をしっかり構築すれば、警告やエラーに悩むことなく GitHub に安心して連携できます。ぜひこの記事の設定をもとに、Git/CI 環境を整えてみてください。
もしさらに「SSH鍵のパスフレーズ管理」や「CI/CD と GitHub Actions 連携」などが気になる方は、いつでもご相談ください 🙂