読者です 読者をやめる 読者になる 読者になる

Shut the fuck up and write some code

グダグダ言わずにコードを書きたいブログ

gitのエラー解決方法

linux Programming

2013/10/16 一件追記しました
2013/09/25 一件追記しました


個人的にgithubやbitbucketを使ったり、自前サーバにリポジトリを置いたりするなど(しかし仕事で使う機会には何故か恵まれてない)、日々の作業でgitを使う機会が増えつつあるのだけど(今更!)、gitのエラーメッセージを全く覚えてないので、メモがてらエラーが出た時の原因/対応方法を書いておきます。また他のメッセージが出てきたら追記しておこうと思います。日々使って行くことが習得への近道。


1.余計な文字列を出力している
fatal: protocol error: bad line length character: xxxx
fatal: '/pass/to/repo.git' does not appear to be a git repository

■原因
sshでターミナルに接続時した際、メッセージを出力している可能性がある。
■対策
.bashrcや.zshrcを見直してechoなどしてそうな箇所を探してみる。


2.リポジトリが存在しない
fatal: '/path/to/repo.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

■原因
git remote add したリポジトリのパスが間違ってる可能性が高い。
■対策
git remote rmしてパスを確認して、間違っているならaddし直す。


3.コミットしてない
error: src refspec master does not match any.
error: failed to push some refs to 'ssh://user@ip.ad.re.ss/pass/to/repo.git'

■原因
commitしたものがないのにpushしようとしている。
■対策
commitしよう!


4.パーミッションがおかしくなった
error: insufficient permission for adding an object to repository database .git/objects

■原因
マルチアカウントでaddなどしていて権限がおかしくなった
■対策
.gitの権限を変更する

$ sudo chmod -R 0777 .git/objects/
5.pushできない
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

■原因
pushする前に更新がかかった。

■対策
pullして再コミットする。


Gitポケットリファレンス
岡本 隆史 武田 健太郎 相良 幸範
技術評論社
売り上げランキング: 20,170
そろそろリファレンス本もいるかなー。