はじめに

Cursorによるゲーム制作のプロジェクトが思いのほか熱が入ってしまい、かなり作りこんでしまったのですが、 現在ゲーム制作をしているフォルダは、このブログ全体を管理している、my-blogの中で作ってします。

今後もし開発を進めていく場合、ソースコードの管理は別で行った方が明らかに便利です。

その為、my-blogのフォルダ外に、ゲームフォルダを移動させて、githubで新規リポジトリを作ろうかと思ったのですが、 ChatGPTにこの件を話すと、フォルダを移動せず、別途プロジェクト管理をできることが分かったのでその備忘録メモです。

gitに詳しい人なら、記事にする内容でもないのですが、まだ不慣れで記録として残しておけば後で見て分かりやすいのと、同じような悩みを抱えている初心者の方の参考にもなると思うのでメモを残しておきます。

現在のファイル構成

[my-blog]
  └─[cursor]
      └─[STG01] -> 'ゲーム制作フォルダ'

.gitignore の問題

STG01フォルダ内でCursorのプロジェクトを作成していますので、 .gitignore にこのフォルダを記載してGitのトラッキングの対象外とすると良さそうに思えますが、 既にトラッキングの対象になっているディレクトリは、.gitignoreに記載しても除外できず、追跡を継続してしまいます。

なので今回は、新たに別のディレクトリを作成してそこに全てのファイルを移動して管理したいと思います。

新規ディレクトリを作成

コマンドプロンプトで新たなディレクトリを作成。

mkdir ./cursor/project-stg01/

my-blog側で追跡対象外にする すでに my-blog 全体が Git 管理されているので、 .gitignore に以下を追加します:

/cursor/project-stg01/

※ 相対パスではなく「my-blog/ からのパス」でOK(すでに .gitignore は my-blog/ にある前提)

GitHibでリポジトリを作成

GitHibでリポジトリを作成

GitHub とリモート接続

1. git init(ローカル初期化)

cd my-blog/cursor/project-stg01 git init

2. リモートリポジトリを接続

git remote add origin https://github.com/your-name/project-stg01.git

3. ファイル追加・コミット

git add . git commit -m “Initial commit”

4. GitHub の main ブランチへ push(初回のみ -u を付ける)

git branch -M main git push -u origin main

Githubで更新確認

 GitHub の main ブランチへ push

.gitignoreが効かない…

以前から、.gitignoreが効かないのが気になってて、ネットの情報やAIに聞いても

「キャッシュにインデックスが残っているから」

というのが定説で、

git rm -r --cached -f (ファイル名)

で対象ファイルのキャッシュを削除するというのが定石なのですが、それでも消えないトラブルが続き、半ばあきらめかけていたのですが、 ChatGPTからの指摘で、いくつかのトラブル情報方を見ていくうちに、原因が分かりました。

.gitignore が完全に無視されるときの裏事情

可能性 詳細
インデックス破損 .git/index のキャッシュにゴミが残ってると、.gitignore があっても完全に無視される
不正な改行コード .gitignore が Windows の改行 CRLF のままだと誤動作することも(稀に)
BOM付きUTF-16 .gitignore ファイルが UTF-16(BOM付き)になっていると中身を正しく解釈できない
スペース・不可視文字混入 /test/ (最後にスペース)などがあると完全に無視される

原因は BOM付きUTF-16

VSCodeのエンコードを見ると「 UTF-16LE」の文字が…。

.gitignore が完全に無視されるときの裏事情:原因は BOM付きUTF-16

ちなみに、エンコードの変更方法はVSCodeの下に表示されている「UTF8、UTF16」をクリック。

.gitignore が完全に無視されるときの裏事情:原因は BOM付きUTF-16

上部に

  • エンコード付きで再度開く
  • エンコード付きで保存

が表示されるので、「エンコード付きで保存」を選択。

次に、変更するエンコードリストが表示されるので「UTF-8」を選択。 これで、エンコード形式の変更が出来ます。

.gitignore が完全に無視されるときの裏事情:原因は BOM付きUTF-16

エディタ上では、テキストは普通に見えますし、他のファイルも全てUTF8で作成されてるので、てっきりUTF8だと思い込んでたので意外な盲点でした。

ほんと指摘されなかったら気づかなかったと思います。

gitコマンド実行時に警告をしてくれたらいいのですが、そういうのも一切ないので分からなかったですね…。

UTF8(BOM無し)にしたところ.gitignore が効くようになりました。

AIに記事にした方が良いと指摘されたので、自分用のメモや、どうやっても.gitignore が効かないトラブルでお困りの方がもし辿り着いたら役に立つかもしれませんので…。

まとめ

以上、gitの管理下にある フォルダ内で新たにリポジトリを作成してプロジェクト管理をする方法の紹介でした。

ありがちな情報なのでそんなに価値はないと思いますが、意外と、エンコード問題は気づきにくいのでそれ経由で辿り着く人がいるかもしれません。

過去何度もAIに聞いても答えが分からなかったですし、度々この問題にぶち当たって質問を投げかけ続けた中で出た答えでしたので。

Windows付属のメモ帳などで安易にファイル編集してしまうとこの問題が起こるようですが、かなり前の事でどうやってファイルを作成したのか忘れてしまい、今となっては何故UTF16になったのか謎です。