git: 'cert-cache' không phải là lệnh git


264

Tôi đã làm theo các hướng dẫn này để gửi thư, bao gồm cả phần về bộ nhớ đệm mật khẩu. Có vẻ như các hướng dẫn đều sai, vì mỗi lần git push origin mastertôi gặp lỗi này:

git: 'credential-cache' is not a git command. See 'get --help'.

... Tại thời điểm đó, tôi buộc phải nhập tên người dùng và mật khẩu của mình. Sau khi làm như vậy, tôi được trình bày với cùng một thông báo lỗi, tiếp theo là đầu ra từ git push.

Đây là nội dung của tập tin .gitconfig của tôi:

[user]
    name = myusername
    email = myusername@myemaildomain.com
[credential]
    helper = cache

Để rõ ràng, sau khi tôi cài đặt Git và chạy Git Bash, đây chính xác là những gì tôi đã gõ:

git config --global user.name "myusername"
git config --global user.email "myusername@myemaildomain.com"
git config --global credential.helper cache

Xin vui lòng giúp đỡ. Điều này thật là bực bội!


53
Để xóa tin nhắn, "git: 'cert-cache' không phải là lệnh git.", Hãy chạy "git config --global --unset cert.rcper", sau đó bạn có thể làm theo hướng dẫn bên dưới.
Wallace Kelly

5
@Wally +1 Cảm ơn, lệnh của bạn chỉ hoạt động với tôi sau khi xóa --global.
Web_Designer


1
thay vào đó, bạn có thể xóa tin nhắn bằng cách sửa đổi tệp .git / config bằng tay (nghĩa là xóa các dòng bên dưới [thông tin xác thực])
tarikakyol

FWIW cho những người đọc các đề xuất Windows khác nhau bên dưới, git config credential.helper cache đã làm việc với tôi với Cygwin git phiên bản 2.13.2.
Flash Sheridan

Câu trả lời:


323

Từ một blog tôi tìm thấy :

"[Git-cert-cache] này không hoạt động cho các hệ thống Windows vì git-cert-cache giao tiếp thông qua một ổ cắm Unix."

Git cho Windows

Vì msysgit đã được thay thế bởi Git cho Windows, nên sử dụng Git cho Windows bây giờ là tùy chọn dễ nhất. Một số phiên bản của trình cài đặt Git cho Windows (ví dụ 2.7.4) có hộp kiểm trong quá trình cài đặt để bật Trình quản lý thông tin Git. Đây là một ảnh chụp màn hình:

ảnh chụp màn hình của trình hướng dẫn cài đặt Git cho Windows 2.7.4

Vẫn đang sử dụng msysgit? Đối với phiên bản msysgit 1.8.1 trở lên

Trình wincredtrợ giúp đã được thêm vào trong msysgit 1.8.1. Sử dụng nó như sau:

git config --global credential.helper wincred

Đối với phiên bản msysgit cũ hơn 1.8.1

Đầu tiên, tải xuống git-cert-winstore và cài đặt nó trong thư mục git bin của bạn.

Tiếp theo, hãy đảm bảo rằng thư mục chứa git.cmd nằm trong biến môi trường Đường dẫn của bạn. Thư mục mặc định cho điều này là C: \ Program Files (x86) \ Git \ cmd trên hệ thống 64 bit hoặc C: \ Program Files \ Git \ cmd trên hệ thống 32 bit. Một cách dễ dàng để kiểm tra điều này là khởi chạy một dấu nhắc lệnh và gõ git. Nếu bạn không nhận được danh sách các lệnh git, thì nó không được thiết lập chính xác.

Cuối cùng, khởi chạy một dấu nhắc lệnh và gõ:

git config --global credential.helper winstore

Hoặc bạn có thể chỉnh sửa tệp .gitconfig theo cách thủ công:

[credential]
    helper = winstore

Khi bạn đã hoàn thành việc này, bạn có thể quản lý thông tin đăng nhập git của mình thông qua Trình quản lý thông tin Windows mà bạn có thể kéo lên thông qua Bảng điều khiển Windows.


4
gitcredentialstore.codeplex.com chứa FAQ. Nó giúp tôi cài đặt winstore thành công. Sự cố nhị phân trừ khi bạn chạy nó từ git-bash.
ruruskyi

8
FYI tôi đã phải cài đặt với quyền quản trị rõ ràng. Không có nó, tôi đã gặp lỗi "git: 'cert-winstore' không phải là lệnh git. Xem 'git --help'". .Gitconfig của tôi bây giờ cũng có một chút khác biệt, với [dòng thông tin xác thực] có "helper =! 'C: \\ Users \\ Malachi \\ AppData \\ Roaming \\ GitCredStore \\ git-cert-winstore.exe' '
Malachi

Của tôi ném một ngoại lệ chưa được xử lý và chết - System.Diagnostics.Process.StartWithShellExecuteEx (ProcessStartInfo startInfo)
Andrew

1
Có lý do nào khiến họ sử dụng socket Unix trong một ứng dụng đa nền tảng không? Và nếu vậy, tại sao git-cert-winstore không giao hàng với phiên bản Git của Windows theo mặc định?
Domi

3
Công cụ git-cert-winstore không hoạt động với tôi. Nó đã từng, nhưng đột nhiên tôi nhận được nhắc nhở ở khắp mọi nơi. Tôi đã kiểm tra .git-config và Trình quản lý thông tin Windows và mọi thứ đều ở đó. Nó chỉ đơn giản là không hoạt động và tôi thực sự không biết tại sao. :(
Chris McKenzie


30

Lần chạy đầu tiên git config --global credential.helper wincred

Sau đó đi đến: CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL

sau đó nhấp vào thêm thông tin xác thực trong Internet or network address: add git:https://{username}.github.com

User: {Tên}

Password: {Mật khẩu}


2
Trình quản lý thông tin có trong Tài khoản người dùng và An toàn gia đình trong Windows 7
Casey Murray

1
CẢM ƠN BẠN! Tôi mất một giờ để tìm hiểu cách sửa Trình quản lý thông tin Windows sau khi thay đổi mật khẩu tên miền. Thánh moly, thật là một mê cung.
SadBunny

3
%windir%\explorer.exe shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}từ bảng điều khiển cũng sẽ khởi động Trình quản lý xác thực.
Jeroen Wiert Pluimers

1
Cảm ơn, vấn đề của tôi đã được khắc phục :)
Diallo

21

Tôi gặp phải vấn đề này khi sử dụng AptanaStudio3 trên windows7. Điều này đã giúp tôi:

git config --global credential.helper wincred

Mã lấy từ đây


10

Hiện tại có một cách dễ dàng hơn nhiều để thiết lập bộ đệm ẩn mật khẩu Git bằng cách nhấp đúp vào một exe nhỏ trên Windows. Chương trình vẫn dựa trên git-credential-winstorecâu trả lời được bình chọn hàng đầu, mặc dù dự án đã được chuyển từ GitHub sang http://gitcredentialstore.codeplex.com/

Bạn có thể tải xuống exe (và nhị phân cho Mac) từ bài đăng trên blog này: https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage


Đây là câu trả lời tôi đang tìm kiếm. Microsoft đã bắt đầu duy trì dự án này. Nó lưu mật khẩu trong cửa hàng thông tin cửa sổ.
Gordolio

10

Một lỗi tương tự là 'credential-wincred' is not a git command

Các câu trả lời được chấp nhận và phổ biến hiện đã lỗi thời ...

wincreddành cho dự án git-cert-winstore không còn được duy trì .

Nó đã được thay thế bởi Git-Credential-Manager-for-Windows được duy trì bởi nguồn mở của Microsoft .

Tải xuống bản phát hành dưới dạng tệp zip từ liên kết ở trên và trích xuất nội dung để

\cygwin\usr\libexec\git-core

(hoặc \cygwin64\usr\libexec\git-corenhư nó có thể)

Sau đó kích hoạt nó, (bằng cách đặt toàn cục .gitconfig) - thực hiện:

git config --global credential.helper manager

Cách sử dụng

Không cần cấu hình thêm.

Nó hoạt động [tự động] khi cần thông tin đăng nhập.

Ví dụ: khi đẩy lên Azure DevOps, nó sẽ mở một cửa sổ và khởi tạo luồng oauth2 để nhận mã thông báo của bạn.

tham chiếu:


8

Trước tiên hãy tìm phiên bản bạn đang sử dụng cho GIT.

sử dụng lệnh này: git --version

nếu bạn có phiên bản mới hơn 1.7.10.

Sau đó, chỉ cần sử dụng lệnh này.

git config --global credential.helper wincred

Tài liệu tham khảo


6

Vì lợi ích của những người khác gặp phải vấn đề này, tôi đã gặp vấn đề tương tự trong Ubuntu (cụ thể là mật khẩu của tôi không lưu trong bộ nhớ cache, mặc dù đã đặt tùy chọn chính xác và gặp lỗi git: 'credential-cache' is not a git command.), cho đến khi tôi phát hiện ra rằng tính năng này chỉ là có sẵn trong Git 1.7.9 trở lên .

Là một bản phân phối cũ hơn của Ubuntu (Natty; Tôi là người dùng Gnome 2 cứng đầu), phiên bản trong repo là phiên bản git 1.7.4.1. Tôi đã sử dụng PPA sau để nâng cấp: https://launchpad.net/~git-core/+archive/ppa


1
Tôi vẫn nhận được git: 'credential-cache' is not a git command.ngay cả sau khi nâng cấp lên phiên bản 2.8.2 trên Windows, mặc dù bộ đệm thông tin xác thực đang hoạt động! Tôi có thể đã tạo ra vấn đề này bằng cách sử dụng một số git configlệnh trước đây.
Butussy Butkus

1
@BriptButkus git config thay đổi ~/.gitconfighoặc repo-local .git/config, tùy thuộc vào việc --globalcờ được sử dụng. Nhìn vào hai tập tin cho bất cứ điều gì liên quan đến thông tin đăng nhập.
Johann

5

Vì lợi ích của những người khác có vấn đề này - tôi đã đến đây vì tôi đã cố gắng trở nên dễ thương với cách tôi thiết lập một kho lưu trữ github mới, nhưng mỗi trình trợ giúp thông tin xác thực của trang thiết lập không hoạt động trừ khi bạn sao chép một kho lưu trữ.

"Mẹo: Trình trợ giúp thông tin xác thực chỉ hoạt động khi bạn sao chép URL kho lưu trữ HTTPS. Nếu bạn sử dụng URL kho lưu trữ SSH thay thế, các khóa SSH được sử dụng để xác thực. Hướng dẫn này cung cấp trợ giúp tạo và sử dụng cặp khóa SSH."


4

Tôi đã khắc phục sự cố này bằng cách xóa credentialphần khỏi cấu hình của dự án cụ thể:

  • Chỉ cần gõ: git config -e
  • Bên trong trình chỉnh sửa tôi loại bỏ toàn bộ phần [credential] helper = cache.

Điều này loại bỏ thông báo gây phiền nhiễu:

git: 'credential-cache' is not a git command. See 'git --help'.


1
Tôi đã thử nhiều giải pháp từ trên và đây là giải pháp duy nhất hiệu quả. Tôi vừa vào thư mục .git của mình, mở tệp cấu hình và xóa [cert] helper = global (tôi vô tình đặt nó thành "toàn cầu"). Cảm ơn rất nhiều Pini Cheyni.
Filip Savic

1
Tôi rất vui vì tôi có thể giúp
Pini Cheyni

3

Tôi nhận ra tôi hơi trễ cuộc trò chuyện, nhưng tôi đã gặp phải vấn đề chính xác tương tự Trong cấu hình git của tôi, tôi có hai mục nhập thông tin xác thực.

Trong tệp .gitconfig của tôi

[credential]
helper = cached
[credentials]
helper = wincred

Cách khắc phục: Đã thay đổi tệp .gitconfig của tôi thành các cài đặt bên dưới

[credential]
helper = wincred
[credentials]
helper = wincred

0

Chúng tôi đã gặp vấn đề tương tự với kho lưu trữ Azure DevOps của chúng tôi sau khi tên miền của chúng tôi thay đổi, tức là từ @ xy.com thành @ xyz.com. Để khắc phục sự cố này, chúng tôi đã tạo mã thông báo truy cập cá nhân mới với các quyền sau:

Mã: đọc và ghi Bao bì: đọc

Sau đó, chúng tôi đã mở Trình quản lý thông tin Windows, thêm thông tin xác thực Windows mới với các chi tiết sau:

Internet hoặc địa chỉ mạng: "git: { projectname } @ dev.azure.com / { projectname }" - thay vào đó, bạn nên sử dụng tên kho lưu trữ git của mình tại đây.
Tên người dùng:
Mật khẩu "Mã truy cập cá nhân" : { Mã thông báo truy cập cá nhân được tạo }

Sau đó, tất cả các hoạt động git của chúng tôi đã hoạt động trở lại. Hy vọng điều này sẽ giúp người khác!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.