2016-05-29 11 views
28

git-scmを使用しており、リポジトリにプッシュしようとしました。そうする際に、私は次のメッセージをもって迎えられた:プッシュが正常に押して終了しなかったものの致命的:資格情報ストレージロックを取得できません:ファイルが存在します。

fatal: unable to get credential storage lock: File exists 

このエラーが表示された理由は、私は思っていました。まだこれをやっていて、以前はこれをやっていませんでした。どんな助けもありがとうございます。ありがとう!

+3

ファイル '/ c/Users/USERNAME/.git-credentials.lock'が見つかりましたが、削除すると次にgitを実行するアサーションエラーが発生し、新しいロックファイルがあります。これにより、新しい「ロック:ファイルが存在する」というエラーが発生します。私は 'credential.store'の2つの設定(私のホームディレクトリにあるものと'/C/Program \ Files/Git/mingw64/etc/gitconfig'の中のもの)を持っていることも発見しました。 'git config -l'は1つの設定しか表示しなくても、後者を削除すると何も変わりませんでした。私にとって、この問題は依然として謎です。私はこれを発見しました:https://github.com/git-for-windows/git/issues/766 –

+1

これは、私が「削除」した後に起こったものです。あなたがgit bashでCTRL + Cを押すと。 –

答えて

2

エラーメッセージはgit credential-store (click for documentation page)です。これは、信任状ストレージ・プログラムの別のインスタンスが現在実行されていることを示しており、(安全ではなくプレーン・テキストで)パスワードを保管しているファイルをロックしています。

git credential-storeのインスタンスが実際に実行されていない場合、ロックファイルは以前の実行から残っていることは間違いなく、単純に削除できます。残念なことに、プログラムはあなたに特定の資格証明ファイルの場所を教えてくれません。

19

私は今日同じ問題を抱えていました。私は何とかにcredential.helperの2つの設定があることが判明しましたgit config --listを使用して、複数あるかどうかを確認してください。credential.helper = "XXX"

私のケースでは、グローバル設定でcredential.helper = managerがあり、credential.helper =ローカル設定で保存されています。

path-to-git-project/.git/configでローカルのものを削除し、問題を解決しました。

+0

私にとってこれは、Windows用のGitの最新バージョンを使って新しい資格情報マネージャのものと関係があると思います。古いパラダイムでは、credential.helperを設定して認証キーを使用するように設定していました...今、Git for Windowsはライブアカウントをデフォルトで内部的に管理します。 – phil

2

は、私はロックファイルがあった場所を考え出す苦労がありました--global

​​
1

を使用せずに、あなたの資格のヘルパーを設定してみてください。 Linuxの 、ちょうどstraceを使用していますが、-fオプションで子プロセスに従うことを忘れないでください:

strace -f -eopen git credential-store --file=~/mystore store < creds 
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 
open("/lib/x86_64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3 
open("/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3 
open("/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3 
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 
open("/dev/null", O_RDWR)    = 3 
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 
open("/home/g179531/.gitconfig", O_RDONLY) = 3 
Process 8269 attached 
[pid 8269] open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 
[pid 8269] open("/lib/x86_64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3 
[pid 8269] open("/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3 
[pid 8269] open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 
[pid 8269] open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 
[pid 8269] open("~/mystore.lock", O_RDWR|O_CREAT|O_EXCL, 0666) = -1 ENOENT (No such file or directory) 
fatal: unable to get credential storage lock: No such file or directory 
[pid 8269] +++ exited with 128 +++ 
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8269, si_status=128, si_utime=0, si_stime=0} --- 
+++ exited with 128 ++ 

プログラムがエラーを印刷する前に開こうとした最後のファイルは、ロックファイルです。私の場合、それは~/mystore.lockです。

+0

これは私の 'No such file or directory'エラーで役に立ちました。 '〜'を現在のディレクトリ内のフォルダとして解釈しようとしていました。 – cst1992

関連する問題