MENU

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

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

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

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

あわせて読みたい
【Sourcetreeインストール】git管理はこれで決まり
【Sourcetreeインストール】git管理はこれで決まりGit(hub)管理するならSourcetreeが特に便利なので共有したいと思う。今回はgithubアカウントを連携させます。 また,git用語やコマンドの説明を以下の記事で分かりやす...

そして,今回ちょっとしたソース修正を行い「さぁ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コマンド一覧 〜使い方から用語説明までまとめてみた〜
【ブックマークおすすめ】gitコマンド一覧 〜使い方から用語説明までまとめてみた〜ITエンジニアの登竜門と言えるgit管理gitコマンドが扱えなきゃエンジニア失格といっても過言ではないでしょう。大丈夫です。僕も覚えるの苦手なので用語とコマンドを分...

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

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

この記事を書いた人

6年間化学を専攻していたのになぜか一部上場のIT企業のエンジニアへ。
普段はWeb系のITエンジニアとしてサラリーマンをしているが、脱サラ田舎暮らしに憧れ,システム開発やブログ収益化を目指す。

コメント

コメントする

目次
目次