Git を使用していると、度々エラーが出て冷や汗もんなのですが…また、仕事中にエラーが出ましてやっと解消できたので、記事にしますね。
index.lock
こんなエラー出ましたけど…。
fatal: Unable to create 'C:/git/******/*******/.
Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. Please make sure all processes are terminated then try again. . If it still fails, a git process may have crashed in this repository earlier: remove the file manually to continue.
エラーを翻訳してみよう
致命的: 'C:/git/******/******/.git/index.lock' を作成できません: ファイルが存在します。
このリポジトリでは別のgitプロセスが実行されているようです。例えば「git commit」によってオープンされたエディタです。 すべてのプロセスが終了していることを確認してから、もう一度試してください。それでも失敗した場合は、git プロセスが以前にこのリポジトリでクラッシュした可能性があります。続行するには、手動でファイルを削除します。
クラッシュ?何を言っているのかチンプンカンプンです。
でも、これを解消しない限り、コミットもプッシュもできず新しい作業ができないので、直しましょう!
index.lockファイルができる理由
Gitの[index.lock]ファイルは、複数のプロセスが同時にインデックスファイル(index)を変更するのを防ぐためのロックファイルで、次のコミットに含めるファイルのメタデータや参照情報を格納する場所とのことです。
git add や git commit などのインデックスに関わる操作を実行するとき、Git はインデックスが同時に他のプロセスによって変更されないようにする必要があるため、.gitディレクトリ内に index.lock というファイルを作成し、インデックスをロックします。操作が完了すると、Git はこのロックファイルを自動的に削除します。
index.lockファイルは、通常、手動で削除する必要はないのだが、何らかの理由でGitがこのファイルを削除できなかった場合(例えば、プロセスがクラッシュしたり予期せず終了したりした場合)、Git のプロセスが動いていないことを確認した上で、このファイルを手動で削除することができます。
エラー解消方法
.gitディレクトリ内に[index.lock]というファイルが存在しています。
まず、[index.lock]を削除しましょう!
もし、これでエラーが解消されない場合は[COMMIT_EDITMSG]も削除してみてください。
これで、エラーが解消されるはずです。私は、解消されました。
上記のファイルを削除するのが怖いのであれば、いったん別の場所で移してみてください。