概要
Gitのエラーは、英語で出るため怖く見えます。しかし、多くは「状態を確認して、次の操作を選ぶ」ことで解決できます。
Gitでエラーが出たら、まず git status を読みます。
よく見るメッセージ
| メッセージ | よくある原因 | まず確認すること |
|---|---|---|
nothing to commit | commitする変更がない | git status |
not a git repository | Git管理外の場所にいる | pwd / ls -a |
Your branch is behind | リモートに新しいcommitがある | git fetch |
failed to push some refs | リモートの方が進んでいる | git fetch / git log |
merge conflict | 同じ箇所の変更が衝突 | git status |
remote origin already exists | originが設定済み | git remote -v |
pathspec ... did not match | ブランチ名やファイル名が違う | git branch / ls |
not a git repository
fatal: not a git repository
Gitリポジトリではない場所でGitコマンドを実行しています。
pwd
ls -a
.git ディレクトリがあるか確認します。
nothing to commit
nothing to commit, working tree clean
現在、commitする変更がありません。正常な状態です。
git status
failed to push some refs
failed to push some refs
リモート側に自分の手元にはないcommitがある場合によく出ます。
git fetch
git status
いきなりforce pushしないようにします。
pushが拒否されたときに、すぐ push --force しないことが重要です。
merge conflict
コンフリクトが起きたら、対象ファイルを確認します。
git status
ファイル内の <<<<<<<、=======、>>>>>>> を消し、正しい内容に直してから git add します。
remote origin already exists
error: remote origin already exists.
すでに origin が登録されています。
git remote -v
URLを変えたい場合は、追加ではなく変更します。
git remote set-url origin <url>
まとめ
Gitのエラーは、現在地や状態を確認すれば原因を絞れます。まず git status、リモート関係なら git remote -v と git fetch、ブランチ関係なら git branch を見ます。push拒否時に安易なforce pushをしないことが大切です。