git/index.lockを解除し無事にadd/commitできました。

git/index.lock解決
  • URLをコピーしました!

普段はSourcetreeを使ってGUIでgitを管理しています。

Sourcetreeは非常に便利なのでぜひ,使ってもらいたい。

そして,今回ちょっとしたソース修正を行い「さぁcommitしよう」としたときに

fatal: Unable to create '.git/index.lock': File exists.

なんかよく分からないが怒られた。

.git/index.lockとは

エラーの文言的には,index.lockってファイルが存在しているからエラーになってるっぽい。

なんや,index.lockって。。

git/index.lockとは
同じgitのリポジトリ内で同時に複数の処理を行わないための排他制御を行うもの。
つまり,index.lockが存在するということは,裏で他のgit操作が行われている。

ならば,他の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用語とコマンドをまとめています。

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

git/index.lock解決

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次