付録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 済みの場合は「全世界に公開された」前提で対処する必要があります。
即座にキー/シークレットを失効 (revoke) — GitHub のスキャナー検知前提でも、攻撃者が先に取得している可能性がある
新しいキーに差し替え
履歴から削除 —
git filter-repoまたは BFG Repo-Cleaner を使用 (CLI 標準ツールでは難しい)強制 push —
git push --force(チームで使っている場合は事前周知が必須)
詳細手順は GitHub 公式ガイド Removing sensitive data from a repository を参照。
注釈
最良の予防策は 「最初からコミットしないこと」。第 7 章の .gitignore を git init 直後に作る習慣をつけましょう。