普段はSourcetreeを使ってGUIでgitを管理しています。
Sourcetreeは非常に便利なのでぜひ,使ってもらいたい。

そして,今回ちょっとしたソース修正を行い「さぁcommitしよう」としたときに
fatal: Unable to create '.git/index.lock': File exists.
なんかよく分からないが怒られた。
.git/index.lockとは
エラーの文言的には,index.lockってファイルが存在しているからエラーになってるっぽい。
なんや,index.lockって。。
ならば,他のgit操作が終了するのを待てばいい。
もちろん,時間をおけばgit操作できるようになるのだが,「そんなの待ちきれないよ」って方は別の解決法で。
git/index.lockを削除
index.lockを削除してしまっても構わない。
$ rm .git/index.lock
ワーキングディレクトリ内にて,このコマンド一発で解決です。
その後,もう一度Pushしてみると,見事解決した。
ありがとう
余談ですが,これでも解決しない場合は以下をお試しください。
git index.lock permission denied
権限がないよってことで怒られた場合。
$ sudo rm .git/index.lock
sudoコマンドで権限を持たせてやればいい。
.gitディレクトリの権限に依存するので,permission deniedのエラーが出ない場合もある。(ちなみに僕も出ていない)
git index.lock 復活
先程のindex.lock削除コマンド
$ rm .git/index.lock
を実行してもindex.lockが消えない。もしくは復活している場合
.git/.COMMIT_EDITMSG.swpファイルの削除でうまくいくらしい。
しかし僕の環境では.git/COMMIT_EDITMSGというファイルしかない。
その場合は,.git/COMMIT_EDITMSGを削除してやるとOKらしい。
つまり
$ rm .git/index.lock
$ rm .git/COMMIT_EDITMSG
または
$ rm .git/.COMMIT_EDITMSG.swp
これで,おそらくはgit index.lockエラーの解決法は網羅できたと思う...
git用語・コマンド一覧
最後に,git用語やコマンドがたくさんあって「覚えるのがめんどくさい」「こんなに覚えきれないよ」って方向けに過去記事で基本的なgit用語とコマンドをまとめています。

ぜひ,ブックマークしてお使いください。
コメント