2016-05-29 19 views
28

Tôi đang sử dụng git-scm và cố gắng đẩy tới kho lưu trữ. Khi làm như vậy, tôi được chào đón bằng thông báo sau:gây tử vong: không thể lấy khóa lưu trữ thông tin xác thực: Tệp tồn tại

fatal: unable to get credential storage lock: File exists 

Trong khi đẩy đã kết thúc đẩy thành công, tôi đã tự hỏi tại sao lỗi này xuất hiện. Nó vẫn còn làm điều này, và đã không làm điều này trước đây. Bất kỳ trợ giúp được đánh giá cao. Cảm ơn!

+3

Tôi thấy rằng có một tệp '/ c/Users/USERNAME/.git-credentials.lock' - nhưng khi tôi xóa nó, tôi nhận được một lỗi xác nhận lần sau khi tôi chạy git, và có một tệp khóa mới. Điều này dẫn đến lỗi "khóa: Tệp tồn tại" mới. Tôi cũng thấy rằng tôi có hai cài đặt (khác biệt) cho 'credential.store', một trong thư mục chính của tôi và một thư mục khác trong'/C/Program \ Files/Git/mingw64/etc/gitconfig'. Loại bỏ sau này không thay đổi gì cả, mặc dù 'git config -l' bây giờ chỉ hiển thị một thiết lập. Vì vậy, với tôi vấn đề này vẫn còn là một bí ẩn. Tôi thấy điều này: https://github.com/git-for-windows/git/issues/766 –

+1

điều này xảy ra với tôi sau khi "hủy" một git thêm hoặc cam kết. nếu bạn nhấn CTRL + C tại git bash. –

Trả lời

2

Thông báo lỗi đến từ git credential-store (click for documentation page). Nó chỉ ra rằng một ví dụ khác của chương trình lưu trữ thông tin xác thực hiện đang chạy và đã khóa tệp (không an toàn, ở dạng văn bản thuần túy) lưu trữ mật khẩu của bạn.

Nếu không có phiên bản nào khác của git credential-store thực sự đang chạy, tệp khóa không còn nghi ngờ gì nữa từ lần chạy trước đó và bạn có thể chỉ cần xóa nó. Rất tiếc, chương trình không cho bạn biết vị trí của tệp thông tin đăng nhập cụ thể (nhưng xem tài liệu về các vị trí có khả năng).

19

Tôi đã gặp vấn đề tương tự ngay hôm nay. Hóa ra là tôi bằng cách nào đó, có hai cấu hình cho credential.helper. Sử dụng git config --list để kiểm tra xem bạn có nhiều số credential.helper = "XXX" hay không.

Trong trường hợp của tôi, tôi đã có credential.helper = manager trong cấu hình chung và credential.helper = lưu trữ trong cấu hình cục bộ.

Tôi đã xóa địa phương trong số đường dẫn đến git-project/.git/config và giải quyết sự cố.

+0

Đối với tôi, tôi nghĩ rằng điều này có liên quan đến công cụ quản lý thông tin xác thực mới với các phiên bản Git mới nhất dành cho Windows. Mô hình cũ là thiết lập credential.helper để lưu trữ và sử dụng các khóa auth ... bây giờ có vẻ như Git cho Windows sẽ quản lý tài khoản trực tiếp của bạn theo mặc định – phil

2

cố gắng cấu hình helper chứng chỉ của bạn mà không sử dụng --global

git config credential.helper wincred 
1

Tôi đã có một thời gian khó khăn để tìm ra nơi mà các tập tin khóa là. Trên Linux, chỉ cần sử dụng strace, nhưng đừng quên làm theo tiến trình con với các tùy chọn -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 ++ 

Các tập tin cuối cùng mà chương trình đã cố gắng để mở trước khi in lỗi là file khóa. Trong trường hợp của tôi, đó là ~/mystore.lock.

+0

Điều này đã giúp tôi với lỗi 'Không có tệp hoặc thư mục'. Nó đang cố gắng diễn giải '~' như một thư mục bên trong thư mục hiện tại. – cst1992

Các vấn đề liên quan