Trình trợ giúp thông tin Git - cập nhật mật khẩu


198

Tôi hiện đang sử dụng GitHub trên HTTPS và đã cài đặt phiên bản Git mới nhất (1.9.0) cùng với trình trợ giúp thông tin Git trên Windows 7.

Khi thiết lập môi trường của tôi, tôi đã nói với thông tin git để nhớ vĩnh viễn tên người dùng và mật khẩu của mình.

Gần đây tôi đã cập nhật mật khẩu GitHub của mình thông qua trang web và giờ đây tôi không còn có thể đẩy / kéo / tìm nạp, v.v.

Làm cách nào để cập nhật mật khẩu của tôi trên trình trợ giúp thông tin git trên Windows 7?


6
Đơn giản, sử dụng "git config --global cert.rcper wincred" và nhập userID và mật khẩu; Sau đó, điều này sẽ được lưu trữ cho bạn, lần sau khi bạn thay đổi mật khẩu, hãy chạy lại lệnh trên.
Akshay Lokur

@AkshayLokur đây là câu trả lời đúng.
Ravimallya

Nếu vẫn thất bại và bạn đang sử dụng TortoiseGit, bạn có thể muốn thử một hành động thông qua đó. Ví dụ: kéo hoặc tìm nạp bằng Rùa sẽ nhắc mật khẩu, sau đó bạn có thể cập nhật. Điều này dường như sau đó ghi đè lên bộ đệm Git Bash và bạn có thể sử dụng bash một lần nữa.
Paul F. Wood

Câu trả lời:


280

Không có câu trả lời nào trong số này kết thúc với vấn đề thông tin Git của tôi. Đây là những gì đã làm nếu có ai cần nó (Tôi đang sử dụng Git 1.9 trên Windows 8.1).

Để cập nhật thông tin của bạn, đi đến Control PanelCredential quản lýCredentials Generic . Tìm thông tin đăng nhập liên quan đến tài khoản Git của bạn và chỉnh sửa chúng để sử dụng mật khẩu được cập nhật.

Tham khảo: Cách cập nhật thông tin đăng nhập Git của bạn trên Windows

Lưu ý rằng để sử dụng Trình quản lý thông tin Windows cho Git, bạn cần định cấu hình trình trợ giúp thông tin xác thực như sau:

git config --global credential.helper wincred

Nếu bạn có nhiều tài khoản GitHub mà bạn sử dụng cho các kho lưu trữ khác nhau, thì bạn nên định cấu hình thông tin đăng nhập để sử dụng đường dẫn kho lưu trữ đầy đủ (thay vì chỉ tên miền, là mặc định):

git config --global credential.useHttpPath true

21
Đây phải là câu trả lời được chấp nhận nếu git config --listcredential.helper=wincred.
MF

6
Làm việc cho tôi - cảm ơn bạn - và cũng đã học về trình quản lý thông tin Windows.
rwalter

Điều này. thay đổi mật khẩu không hoạt động nhưng tôi đã xóa thông tin đăng nhập và sau đó git đẩy yêu cầu thông tin đăng nhập một lần nữa và nó đã hoạt động.
BiAiB

2
Tôi nghĩ rằng nó hoạt động cho cửa sổ 8.1 và cửa sổ 10 cũng có. Trong trường hợp của tôi: window 10 Pro, git 2.17
Thịnhbk

2
Đối với bất kỳ ai (như tôi) xóa thông tin đăng nhập được lưu trữ với hy vọng về một dấu nhắc khác, nhưng lời nhắc đó không hiển thị. Từ Credentials Manager, bạn có thể ADDmột Generic Credentialvới một địa chỉ git:http://yourserver:port/. Http hoặc Https là như nhau, bit quan trọng là git:lúc bắt đầu.
A. Chiesa

101

Trong lần thử đầu tiên để tìm nạp Git sau khi thay đổi mật khẩu, tôi được thông báo rằng sự kết hợp tên người dùng / mật khẩu của tôi không hợp lệ. Điều này là chính xác vì người trợ giúp thông tin git đã lưu trữ các giá trị cũ của tôi.

Tuy nhiên, tôi đã cố gắng khác tìm nạp git sau khi khởi động lại terminal / prompt-prompt và lần này, trình trợ giúp thông tin đã nhắc tôi nhập tên người dùng và mật khẩu GitHub của tôi.

Tôi nghi ngờ yêu cầu tìm nạp Git thất bại ban đầu kết hợp với khởi động lại terminal / prompt-prompt của tôi đã giải quyết điều này cho tôi.

Tôi hy vọng câu trả lời này sẽ giúp bất kỳ ai khác ở vị trí tương tự trong tương lai!


2
Chỉ cần khởi động lại Git Bash, nó sẽ nhắc một hộp thoại để nhập tên người dùng / mật khẩu mới.
Quan

2
Đối với bản ghi, tôi đã có thể khắc phục điều này bằng cách thực hiện thao tác kéo / tìm nạp khác mà không cần khởi động lại phiên Powershell của mình trên Windows 7. Windows đã nhắc tôi về khoản tín dụng mới của mình trong lần thử thứ hai.
Bender lớn nhất

khởi động lại bàn điều khiển / ứng dụng làm cho "wincred" hoạt động với tôi. (Tôi đã phải khởi động lại bàn điều khiển và "Nguyên tử" và mọi thứ đều hoạt động tốt)
low_rents 16/07/17

3
Nhập bất kỳ lệnh git nào yêu cầu thông tin xác thực lần thứ hai dường như để làm điều này, không chỉ git fetch, nó cũng hoạt động trên một giây git clone.
hoa tiêu_

Cảm ơn rât nhiều! Mỗi lần tôi thay đổi mật khẩu tên miền, tôi phải nhớ cách cập nhật thông tin đăng nhập của mình.Git fetch - Nó hoạt động với tôi!
Alexander Brattsev

74

Giải pháp sử dụng dòng lệnh cho Windows, Linux và MacOS

Nếu bạn đã cập nhật mật khẩu GitHub của mình trên máy chủ GitHub, trong lần thử đầu tiên của git fetch/pull/pushlệnh, nó sẽ tạo ra xác thực thất bại thông báo .

Thực hiện như nhau git fetch/pull/push lệnh lần thứ hai và nó sẽ nhắc thông tin đăng nhập (tên người dùng và mật khẩu). Nhập tên người dùng và mật khẩu được cập nhật mới của máy chủ GitHub và đăng nhập sẽ thành công.

Ngay cả tôi đã có vấn đề này, và tôi đã thực hiện các bước trên và thực hiện !!


@ Vincent: vấn đề bạn đang gặp phải là gì ??
Farooque

2
Tôi chỉ nhận được từ xa lặp lại: Tên người dùng hoặc mật khẩu không hợp lệ. gây tử vong: Xác thực thất bại cho
RichMeister

1
@RichMeister: Từ lần thứ hai nó sẽ hỏi tên người dùng / mật khẩu. Chỉ cần cung cấp tên người dùng / new_password của bạn.
Farooque

3
Làm việc cho tôi trên MacOS với thông tin đăng nhập được lưu trong bộ nhớ cache sau khi thay đổi mật khẩu. Lần đầu tiên nhận được 'Xác thực thất bại cho ...'. Đã thử lại và được nhắc nhập thông tin đăng nhập, nhập userid và mật khẩu mới và hiện đang hoạt động trở lại
Kevin Hooke

1
Đây là câu trả lời hay nhất / dễ nhất
Ryan Boken

74

Nếu bạn là người dùng Windows, bạn có thể xóa hoặc cập nhật thông tin đăng nhập của mình trong Trình quản lý thông tin xác thực.

Trong Windows 10, đi đến đường dẫn bên dưới:

Bảng điều khiểnTất cả các mục Bảng điều khiển Trình quản lý thông tin xác thực

Hoặc tìm kiếm "trình quản lý thông tin xác thực" trong phần "Tìm kiếm Windows" trong menu Bắt đầu.

Sau đó, từ Trình quản lý thông tin xác thực, chọn "Thông tin xác thực Windows".

Trình quản lý thông tin xác thực sẽ hiển thị nhiều mục, bao gồm triển vọng và kho lưu trữ GitHub của bạn trong "Thông tin chung"

Bạn bấm vào mũi tên thả xuống ở bên phải Git của bạn: và nó sẽ hiển thị các tùy chọn để chỉnh sửa và xóa. Nếu bạn xóa, cửa sổ bật lên thông tin xác thực sẽ đến vào lần tới khi bạn tìm nạp hoặc kéo. Hoặc bạn có thể trực tiếp chỉnh sửa thông tin đăng nhập ở đó.


3
Sau khi thử các lựa chọn khác, chỉ có cái này làm việc cho tôi. Tôi tìm thấy thông tin ở đây: cmatskas.com/how-to-update-your-git-credentials-on-windows
neomib

Lưu ý: điều khiển này KHÔNG TIẾP CẬN QUA UI METRO "ĐIỀU KHIỂN ĐIỀU KHIỂN"! Bạn phải chạy control.exethủ công để xem điều khiển này.
AnrDaemon

Điều này đã giúp rất nhiều! Tôi thậm chí không biết rằng công cụ này tồn tại.
hàm

35

Trước tiên hãy tìm phiên bản bạn đang sử dụng bằng lệnh Git git --version. Nếu bạn có phiên bản mới hơn 1.7.10, thì chỉ cần sử dụng lệnh này:

git config --global credential.helper wincred

Sau đó làm git fetch , sau đó nó nhắc cập nhật mật khẩu.

Bây giờ, nó sẽ không nhắc mật khẩu nhiều lần trong Git.


6
Điều này không trả lời câu hỏi
đĩalosr

2
@disklosr Có chứ. Nó buộc Git nhắc mật khẩu cập nhật vào lần tới khi bạn thực hiện một hành động từ xa.
Nilpo

1
@Nilpo "Hành động từ xa" là gì? Không nên "git đẩy gốc xxx" là một hành động từ xa? Nó không làm điều đó. thay vào đó tôi nhận được từ xa: Tên người dùng hoặc mật khẩu không hợp lệ.
RichMeister

1
Nó làm việc cho tôi. Sau khi thực hiện lệnh này. Làm "git fetch", bạn sẽ được nhắc nhập thông tin đăng nhập, cung cấp nó.
Alex

Tại sao --global? Tôi không mạo hiểm để được yêu cầu lại cho tất cả các kho lưu trữ của tôi thay vì chỉ có một kho ảnh hưởng?
Thomas Weller

29

Dường như với tôi rằng các câu trả lời ở đây đã lỗi thời. Đối với tôi trong Windows 10 và Git 2.15.0, công việc này đã thực hiện:

git credential reject
protocol=https
host=github.com
<Empty line here>

Và sau đó để đặt tên người dùng và mật khẩu mới:

git credential fill
protocol=https
host=github.com
<empty line here>

Sau này, nếu thông tin đăng nhập hiện hoạt động trên máy chủ đích mong muốn, chúng ta nên sử dụng git credential approve- như được đề cập trong sử dụng thông tin xác thực Git (bước 4) - để báo cho người trợ giúp thông tin xác thực thông tin đăng nhập được phê duyệt và sử dụng lại chúng trong các kết nối trong tương lai.


1
Đối với tôi, thực hiện git credential fillphần nguyên trạng, nó tự động tạo mật khẩu sai cũ; Tôi đã phải thiết lập cái mới theo cách thủ công với lệnh này để nó hoạt động; Dù sao, cảm ơn, câu trả lời này đã giúp tôi với vấn đề này!
Emerson Cardoso

Upvote lên hàng đầu! Bao nhiêu thời gian lãng phí đọc các giải pháp lỗi thời. Trên thực tế, Trình quản lý thông tin Git đáng trách ở đây tôi nghĩ rằng tôi đã phải trải qua nỗi đau khi các mật khẩu tên miền được xoay vòng.
Janis Veinbergs

1
Sau đó fill, chúng ta không nên sử dụng approve?
Z. Khullah

Trên máy của tôi git credential rejectkhông bao giờ hoàn thành
Thomas Weller

@ThomasWeller bạn phải nhấn enter để để lại một dòng trống ở đó, sau đó nó hoàn thành.
atavio

19

FWIW, tôi đã vấp phải vấn đề rất giống nhau này (và ông chủ của tôi cũng vậy, vì vậy nó trở nên dữ dội hơn).

Giải pháp tức thì là xóa hoặc sửa các mục Git của bạn trong Trình quản lý thông tin Windows. Bạn có thể gặp khó khăn khi tìm thấy nó trong phiên bản Windows được bản địa hóa của mình, nhưng may mắn thay, bạn có thể bắt đầu nó từ hộp thoại cũ Windows+ Rchạy tốt với control keymgr.dllhoặc control /name Microsoft.CredentialManager(hoặc rundll32.exe keymgr.dll, KRShowKeyMgrnếu bạn thích giao diện cổ điển). Hoặc đặt tệp này trong một tệp bó cho đồng nghiệp của bạn:cmdkey /delete:git:http://your.git.server.company.com .

Trong Trình quản lý thông tin Git của Microsoft, đây là sự cố đã biết có thể được khắc phục ngay từ đầu năm 2019 (vì vậy đừng nín thở).


1
Hiểu Trình quản lý thông tin Windows bằng cách sử dụng Giao diện người dùng Bảng điều khiển là điều tuyệt vời nhưng trở nên mệt mỏi khi bạn phải cập nhật trên tất cả các máy. Lệnh duy nhất này rất tuyệt vì nó hoàn thành cùng một thứ (loại bỏ các thông tin không hợp lệ hiện có) buộc git phải nhắc lại thông tin đăng nhập vào lần tiếp theo khi cần. Trên Windows Server 2016, cú pháp lệnh để xóa thông tin xác thực có chút khác biệt: cmdkey /delete:git:https://your.git.server.company.com
Rud thô

/delete{:<TargetName>}cú pháp chính thức , nhưng tôi thấy rằng phím tắt /del <TargetName>cũng hoạt động, ít nhất là trong Windows 10 (1803).
Jakob

ý tưởng tuyệt vời cho một bí danh! delpw = !cmdkey /delete:git:$(git remote get-url $1). Cách sử dụng: git delpw origin(ps: / del không hoạt động ở đây, Win 10 cũng vậy)
Z. Khullah

6

Chỉ cdtrong thư mục mà bạn đã cài đặt git-cert-winstore. Nếu bạn không biết ở đâu, chỉ cần chạy nó trong Git Bash:

cat ~/.gitconfig

Nó nên in một cái gì đó trông như:

[credential]
    helper = !'C:\\ProgramFile\\GitCredStore\\git-credential-winstore.exe'

Trong trường hợp này, kho lưu trữ của bạn là C: \ ProgramFile \ GitCredStore. Khi bạn đã ở trong thư mục này bằng Git Bash hoặc lệnh Windows, chỉ cần gõ:

git-credential-winstore.exe erase
host=github.com
protocol=https

Đừng quên nhấn Enterhai lần sau protocol=https.


3

Không có giải pháp hiện tại nào phù hợp với tôi với git bash 2.26.2. Điều này sẽ hoạt động trong mọi trường hợp nếu bạn đang sử dụng trình quản lý thông tin Windows.

Một vấn đề là trình quản lý thông tin windows chạy cho người dùng đã đăng nhập. Trong trường hợp của tôi chẳng hạn, tôi chạy git bash bằng nhấp chuột phải, chạy với tư cách quản trị viên. Do đó, thông tin đăng nhập được lưu trữ của tôi nằm trong trình quản lý thông tin đăng nhập mà tôi không thể truy cập bằng GUI windows nếu tôi không đăng nhập vào windows với tư cách quản trị viên.

Để khắc phục điều này:

  • Mở cmd với tư cách quản trị viên (hoặc bất kỳ người dùng nào bạn chạy bằng bash)
  • Chuyển đến windows / system32
  • Loại cmdkey /list. Thông tin đăng nhập cũ của bạn sẽ xuất hiện ở đây, với phần đọc ... mục tiêu: xxx ...
  • Loại cmdkey /delete:xxx, trong đó xxx là mục tiêu từ dòng trước

Nó sẽ xác nhận với bạn rằng thông tin đăng nhập của bạn đã bị xóa. Lần tới khi bạn thực hiện bất kỳ thao tác nào trong git bash yêu cầu xác thực, một cửa sổ bật lên sẽ yêu cầu thông tin đăng nhập của bạn.

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.