AIToday
AIコーディングZenn AI/ML掲載日時: 2026年11月3日 6:00

AIの「除外済み」報告、gitコマンドで照合を

LINEで送る
AIの「除外済み」報告、gitコマンドで照合を

3つのポイント

  1. 何が起きたか

    AI報告例はapp.env、build/、debug.logを除外済みとした。

  2. なぜ重要か

    .gitignoreは追跡済みファイルを外さないため、ルール追加前のファイルでは「除外済み」が誤り得る。check-ignoreは未除外や追跡中には何も出力しない。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

製品発表ではなく解説記事であり、中心にあるのはファイルが「除外済み」かどうかを決める2つの別個のGit的事実、すなわちGitがそのファイルを追跡しているか、.gitignoreのルールが一致するかだ。検証用リポジトリではapp.envが*.envの追加前にコミットされていたため、git ls-filesはいまもそれを一覧に表示した。追跡状態を無視するgit check-ignore -v --no-indexだけが、ファイルが未追跡なら適用されるルールが1行目(*.env)であることを明らかにした。

debug.logはさらに事情が異なり、どのルールも一致せず未追跡で、git status --shortの??マーカーで判別された。この区別が重要なのは、git add .がdebug.logを取り込む一方、build/は--ignoredを付けたときにのみ!!として現れ、除外が確認されたからだ。

記事は片付けの手順とその限界にも触れる。git rm --cached app.envを実行するとgit ls-filesから消えて*.envルールが有効になったが、ファイルの中身はgit show HEAD:app.envで読めたままで、履歴は別の判断となる。最後に、Gitの出力はバージョンや設定で変わり得ること、AIにこれらの確認を実行させるための提案プロンプトは未検証であることを記している。

よくある質問
.gitignoreに*.envを追加してもapp.envが除外されなかったのはなぜですか?
app.envがすでにコミットされ、追跡されたままだったからです。git ls-filesはapp.envを一覧に表示し、git check-ignore -vは出力なしで終了コード1を返します。
git check-ignoreの出力が空というのはどういう意味ですか?
コマンドが失敗したのではなく、ファイルが除外されていないという意味です。終了コードは除外がなければ1、少なくとも1つのパスが除外されれば0、致命的エラーなら128です。
追跡も除外もされていないファイルはどうやって見つけますか?
git status --shortを実行し、??で始まる行を探します。検証ではdebug.logと.gitignoreがそのように表示され、こうしたファイルはgit add .で取り込まれます。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

このようなAIの動きを、御社の業界・競合に合わせて毎日届ける法人プランもあります → 詳しく見る

関連記事

次の記事へLLMが報酬ハックする理由は高得点への欲求