付録B よくあるエラーと対処

各エラーは「症状 → 原因 → 対処 → 予防策」の順で説明します。

エラー: warning: LF will be replaced by CRLF

  • 症状: git add 時に上記の warning が出る

  • 原因: ファイルに LF 改行が含まれており、core.autocrlf=true の設定で CRLF に変換しようとしている。これは警告であってエラーではなく、コミット自体は成功する

  • 対処: 何もしなくて良い。気になる場合はエディタの改行コード設定を CRLF に統一

  • 予防策: チームで開発する際は .gitattributes で改行コードを統一する

エラー: fatal: not a git repository

  • 症状: git status 等で fatal: not a git repository (or any of the parent directories): .git が出る

  • 原因: カレントディレクトリが Git リポジトリでない

  • 対処: git init で初期化、または cd で正しいリポジトリに移動

  • 予防策: 操作前に git status でリポジトリ内にいるか確認する習慣

エラー: Authentication failed

  • 症状: git push 時に remote: Invalid username or password. または fatal: Authentication failed

  • 原因: GitHub 認証情報が古い・期限切れ・未設定

  • 対処: gh auth login で再認証 → gh auth status で確認

  • 予防策: GitHub の Personal Access Token (PAT) を直接扱わず、gh auth login 経由で管理する

エラー: Updates were rejected (push reject)

  • 症状: git push! [rejected] main -> main (fetch first) または (non-fast-forward)

  • 原因: リモートに自分のローカルにない変更がある (別端末で先に push したなど)

  • 対処: git pull で取り込み → git push で送る (この 2 段階)

  • コンフリクトが起きた場合: 同じ箇所を別々に編集していると git pull でコンフリクトが発生します。コンフリクト解消は本書の範囲外です。第 11 章の参考資料 (Pro Git 本など) を参照してください。

  • 予防策: 作業開始時に必ず git pull する習慣

エラー: 日本語ファイル名が “\343\201\202” のように表示される

  • 症状: git status で日本語ファイル名がエスケープ表記される

  • 原因: core.quotepath がデフォルト (true) のまま

  • 対処:

git config --global core.quotepath false
  • 予防策: 第 3 章の初期設定を確実に行う

ハマり: 改行コード (CRLF/LF) でコミットが膨らむ

  • 症状: 1 文字も実質的には変えていないのに git diff で大量の差分が表示される

  • 原因: エディタが改行コードを変えてしまった (LF↔CRLF)

  • 対処: エディタの改行コード設定を確認 (VS Code 右下に表示)。core.autocrlf=true 環境では CRLF 固定が無難

  • 予防策: VS Code なら "files.eol": "\r\n" (Windows) を settings.json に書く

緊急: 秘匿情報を誤コミットしてしまった場合

危険

以下の手順に従っても、push 済みの場合は「全世界に公開された」前提で対処する必要があります

  1. 即座にキー/シークレットを失効 (revoke) — GitHub のスキャナー検知前提でも、攻撃者が先に取得している可能性がある

  2. 新しいキーに差し替え

  3. 履歴から削除git filter-repo または BFG Repo-Cleaner を使用 (CLI 標準ツールでは難しい)

  4. 強制 pushgit push --force (チームで使っている場合は事前周知が必須)

詳細手順は GitHub 公式ガイド Removing sensitive data from a repository を参照。

注釈

最良の予防策は 「最初からコミットしないこと」。第 7 章の .gitignoregit init 直後に作る習慣をつけましょう。