Xóa thông tin đăng nhập khỏi Git


623

Tôi đang làm việc với một số kho lưu trữ, nhưng gần đây tôi chỉ làm việc trong kho của chúng tôi và tất cả đều tuyệt vời.

Hôm nay tôi đã phải cam kết và đẩy mã vào một mã khác, nhưng tôi gặp một số rắc rối.

$ git push appharbor master
error: The requested URL returned error: 403 while accessing https://gavekortet@appharbor.com/mitivo.git/info/refs?service=git-receive-pack
fatal: HTTP request failed

Không có gì tôi có thể làm, điều đó sẽ mang lại mật khẩu nhập lại.

Làm cách nào tôi có thể đặt lại thông tin đăng nhập trên hệ thống của mình để Git sẽ hỏi tôi mật khẩu của kho lưu trữ đó?

Tôi đã thử:

  • git config --global --unset core.askpass

để bỏ đặt mật khẩu

  • git config credential.helper 'cache --timeout=1'

để tránh bộ đệm thông tin đăng nhập ...

Dường như không có gì để làm việc; Có ai có một ý tưởng tốt hơn?


Bạn có một ~/.netrctập tin?
cướp

2
@robinst đó là một máy tính windows và tôi không thể tìm thấy tệp đó, thậm chí từ Git Bash ...
balexandre

@balexandre cho máy Windows, tôi thích sử dụng trình trợ giúp thông tin xác thực (git 1.8.3) mới netrc, sẽ lưu trữ nhiều thông tin xác thực trong một tệp được mã hóa . Tốt hơn là nhập mật khẩu của bạn mỗi lần cho mỗi phiên, vì bộ đệm chỉ "lưu trữ" mật khẩu trong một thời gian nhất định. Xem một ví dụ đầy đủ ở đây .
VonC

Tôi không có .netrc. Tôi có một tệp trong ~ (C: \ Users \ Myself) có tên .git-information, nhưng xóa nó không hoạt động, tôi vẫn đăng nhập vào Git Shell. Ngoài ra, Trình quản lý thông tin bảng điều khiển dường như không lưu trữ bất cứ thứ gì. Các tập tin cấu hình Git cục bộ và toàn cầu có vẻ ổn. Tôi đã thừa hưởng máy trạm của mình từ một nhân viên còn lại, vì vậy có thể anh ta đã thiết lập một số cơ chế lưu trữ thông tin xác thực không chính thống mà tôi không biết làm cách nào để tắt. Tôi hy vọng hành vi này KHÔNG phải là mặc định của Git Windows. Trên bộ nhớ đệm thông tin xác thực Mac là mặc định nhưng ít nhất nó sẽ hiển thị trong Keychain Access.
damix911

Câu trả lời đầy đủ hơn cũng hoạt động trên linux, windows và Mac OS X, xem stackoverflow.com/a/39944557/3906760
MrTux

Câu trả lời:


654

Nếu sự cố này xảy ra trên máy Windows, hãy làm như sau.

  • Chuyển đến Trình quản lý thông tin xác thực
  • Chuyển đến Thông tin Windows
  • Xóa các mục trong Thông tin chung
  • Hãy thử kết nối lại. Lần này, nó sẽ nhắc bạn nhập tên người dùng và mật khẩu chính xác.

Chuyển đến Trình quản lý thông tin xác thực

Chuyển đến Thông tin xác thực Windows và Xóa các mục trong Thông tin chung


4
Điều này chỉ có liên quan nếu của bạn credential.helper=manager. Để kiểm tra loại này git config --list. Nếu nó được đặt thành storethì thông tin đăng nhập sẽ không được lưu trữ trong kho thông tin xác thực nhưng được lưu trữ không được mã hóa.
Liam

3
Tôi chỉ phải xóa thông tin đăng nhập có tên git:https://github.comvà tôi được nhắc nhập tên người dùng / vượt qua vào lần tiếp theo tôi nhân bản một repo bằng PyCharm. Tôi đã có nhiều tài khoản github và tài khoản sai được lưu trữ.
dotcomly

22
Nếu ai đó đang tìm kiếm cái này trên một máy cục bộ của Đức, thì đó là "Anmeldeinformationsverwaltung" trên đường dẫn Systemsteuerung\Alle Systemsteuerungselemente\Anmeldeinformationsverwaltung.
davidenke

3
Ngoài ra, bạn có thể thay đổi người dùng / vượt qua trong Credential Manager. Điều đó cũng có hiệu quả với tôi
Daniel Lerps 31/07/18

Xóa thông tin đăng nhập đã giải quyết 403lỗi của tôi thông qua Bitbucket.
Eido95

673

Bộ đệm thông tin xác thực Git chạy một quy trình daemon lưu trữ thông tin đăng nhập của bạn trong bộ nhớ và cung cấp chúng theo yêu cầu. Vì vậy, việc giết git-cert-cache - tiến trình daemon sẽ loại bỏ tất cả những thứ này và dẫn đến việc nhắc lại mật khẩu của bạn nếu bạn tiếp tục sử dụng tùy chọn này làm tùy chọn cache.rcper.

Bạn cũng có thể vô hiệu hóa việc sử dụng bộ đệm thông tin xác thực Git bằng cách sử dụng git config --global --unset credential.helper. Sau đó đặt lại cái này và bạn sẽ tiếp tục có các thông tin lưu trữ có sẵn cho các kho lưu trữ khác (nếu có). Bạn cũng có thể cần phải làm git config --system --unset credential.helpernếu điều này đã được đặt trong tệp cấu hình hệ thống (ví dụ: Git cho Windows 2).

Trên Windows, bạn có thể sử dụng trình trợ giúp trình quản lý ( git config --global credential.helper manager) tốt hơn . Điều này lưu trữ thông tin đăng nhập của bạn trong cửa hàng thông tin Windows có giao diện Bảng điều khiển nơi bạn có thể xóa hoặc chỉnh sửa thông tin đăng nhập được lưu trữ của mình. Với cửa hàng này, thông tin chi tiết của bạn được bảo mật bằng thông tin đăng nhập Windows của bạn và có thể tồn tại qua nhiều phiên. Trình trợ giúp trình quản lý có trong Git cho Windows 2.x đã thay thế trình trợ giúp wincred trước đó đã được thêm vào Git cho Windows 1.8.1.1. Một trình trợ giúp tương tự được gọi là winstore cũng có sẵn trực tuyến và được sử dụng với GitExtensions vì nó cung cấp giao diện điều khiển GUI nhiều hơn. Trình trợ giúp người quản lý cung cấp giao diện GUI giống như winstore .

Trích xuất từ trang hỗ trợ Windows 10 chi tiết trình quản lý thông tin Windows:

Để mở Trình quản lý thông tin xác thực, hãy nhập "Trình quản lý thông tin xác thực" vào hộp tìm kiếm trên thanh tác vụ và chọn Bảng điều khiển Trình quản lý xác thực .

Và sau đó chọn Thông tin xác thực Windows để chỉnh sửa (= xóa hoặc sửa đổi) thông tin đăng nhập git được lưu trữ cho một URL đã cho.


197
Tôi tìm thấy bảng điều khiển Thông tin xác thực của Windows ở Control Panel\User Accounts\Credential Managerdưới Windows 7
Steve Pitchers

2
Không giết quá trình để lại bất kỳ dấu vết nào ở đâu đó, để mật khẩu vẫn có thể được truy cập? Theo hướng dẫn sử dụng git, chúng được lưu trữ trong "văn bản thuần túy".
Ufos

1
Trong cửa sổ 8.1, "Thông tin Windows" nằm dưới Thông tin chung và git: gitlab.com hoặc máy chủ git của bạn.
Jeff

5
Trong Windows 8/10, Cài đặt tài khoản người dùng chi tiết được đặt trong Bảng điều khiển "cổ điển", không phải Ứng dụng "Cài đặt" (Giao diện người dùng hiện đại). Chỉ để tránh nhầm lẫn.
DanielH

1
trong windows 10 Chuyển đến Bảng điều khiển \ Tất cả các mục trong Bảng điều khiển \ Trình quản lý xác thực. Có thể có Thông tin chung cho GitHub. Bạn có thể cập nhật tên người dùng và mật khẩu ở đó.
Eldhose Áp-ra-ham

155

Nhập lại:

$ git config credential.helper store

Và sau đó bạn sẽ được nhắc nhập lại thông tin đăng nhập của bạn.

CẢNH BÁO

Sử dụng trình trợ giúp này sẽ lưu trữ mật khẩu của bạn không được mã hóa trên đĩa

Nguồn: https://git-scm.com/docs/git-credential-store


35
lệnh này không yêu cầu nhập lại thông tin đăng nhập của tôi, lệnh này không làm gì cả
Shirish Herwade

3
@ShirishHerwade hãy thử git pull, sau đó bạn sẽ thấy màn hình nhắc nhở
ismailcem

2
@jkokorian Để hoàn tác lệnh này xóa các dòng có liên quan từ .git/config.
Zenadix

110

Tôi đã đối mặt với vấn đề tương tự như OP. Nó đã lấy thông tin đăng nhập Git cũ của tôi được lưu trữ ở đâu đó trên hệ thống và tôi muốn sử dụng Git với thông tin đăng nhập mới của mình, vì vậy tôi đã chạy lệnh

$ git config --system --list

Nó cho thấy

credential.helper=manager

Bất cứ khi nào tôi thực hiện, git pushnó đã lấy tên người dùng cũ mà tôi đã đặt lại từ lâu và tôi muốn sử dụng tài khoản GitHub mới để thay đổi. Sau đó tôi thấy rằng thông tin đăng nhập tài khoản GitHub cũ của tôi đã được lưu trữ trong Bảng điều khiểnTài khoản người dùngTrình quản lý thông tin xác thựcQuản lý thông tin đăng nhập Windows .

Quản lý thông tin xác thực Windows

Tôi vừa xóa những thông tin này và khi tôi thực hiện git pushnó đã hỏi tôi về thông tin đăng nhập GitHub của tôi và nó hoạt động như một cơ duyên.


Minh họa tốt về gần đây của Trình quản lý thông tin Git gần đây ( github.com/Microsoft/Git-Credential-Manager-for-Windows ) hoạt động bằng cách lưu trữ thông tin đăng nhập ( github.com/Microsoft/Git-Credential-Manager-for-Windows/ các vấn đề / Tập ) +1
VonC

1
@VonC Tôi phải mất một ngày để tìm hiểu điều này vì tôi không biết về cơ chế lưu trữ thông tin đăng nhập này.
Mourya

Nó là khá gần đây thực sự. Cảm ơn bạn đã đề cập đến nó ở đây.
VonC

Đây có lẽ là câu trả lời tốt hơn câu trả lời "được chấp nhận", mà theo tôi ngụ ý về việc thu thập tất cả các thông tin. Chắc chắn đã giúp tôi.
VictorLegros

52

Hãy thử sử dụng lệnh dưới đây.

git credential-manager

Tại đây bạn có thể nhận được nhiều tùy chọn khác nhau để quản lý thông tin đăng nhập của mình (kiểm tra màn hình bên dưới).

Nhập mô tả hình ảnh ở đây

Hoặc thậm chí bạn có thể trực tiếp thử lệnh này:

git credential-manager uninstall

Điều này sẽ bắt đầu nhắc lại mật khẩu trên mỗi yêu cầu tương tác của máy chủ.


10
Tại sao tôi nhận được -git: 'credential-manager' is not a git command. See 'git --help'.
Saikat

2
Không chắc chắn, tại sao nó không hoạt động cho bạn, nhưng ngay cả trong phiên bản git mới nhất, nó vẫn có sẵn. Vui lòng tham khảo liên kết này để biết thêm thông tin - git-scm.com/book/gr/v2/Git-Tools-Credential-Storage
Himanshu Aggarwal

3
removal failed. U_U Press any key to continue... fatal: InvalidOperationException encountered. Cannot read keys when either application does not have a console or when console input has been redirected from a file. Try Console.Read.(với U_Ubiểu tượng cảm xúc đẹp từ hư không :))
jeromej

1
Giải pháp duy nhất hiệu quả với tôi trên Windows với GitBash.
alain.janinm

có thể là một bên, nhưng tôi đã cài đặt git qua choco và phương pháp [gỡ cài đặt] này tốt cho tôi khi kéo repo trên máy tính đã triển khai mà không lưu trữ thông tin đăng nhập
beep_check

32

Tôi tìm thấy một cái gì đó làm việc cho tôi. Khi tôi viết nhận xét của mình cho OP, tôi đã không kiểm tra tệp cấu hình hệ thống:

git config --system -l

Cho thấy một

credential.helper=!github --credentials

hàng. Tôi bỏ đặt nó với

git config --system --unset credential.helper

và bây giờ các thông tin bị lãng quên.


2
Ankur, bạn có thể cần chạy lệnh được đề xuất theo cách tương tự từ 2-3 lần nếu bạn đã nhận được một vài trình trợ giúp xác thực được cấu hình. git config --global --unset credential.helpervà có thể chỉ git config --unset credential.helpertrong kho lưu trữ của bạn nếu bạn bằng cách nào đó đặt nó rõ ràng ở đó.
dragon788

cảm ơn giải pháp Chỉ là một chi tiết: trong trường hợp của tôi, tôi đã phải khởi chạy dấu nhắc lệnh với tư cách quản trị viên
A.Joly

30

Trong trường hợp của tôi, Git đang sử dụng Windows để lưu trữ thông tin đăng nhập.

Tất cả bạn phải làm là xóa thông tin đăng nhập được lưu trữ trong tài khoản Windows của bạn:

Menu thông tin đăng nhập Windows


1
Điều này khác với câu trả lời này như thế nào? hay cái này ?
Liam

20
git config --list

sẽ hiển thị credential.helper = manager(cái này ở trên máy windows)

Để tắt tên người dùng / mật khẩu được lưu trong bộ nhớ cache này cho thư mục git cục bộ hiện tại của bạn, chỉ cần nhập

git config credential.helper ""

Bằng cách này, git sẽ nhắc mật khẩu mỗi lần, bỏ qua những gì được lưu trong "trình quản lý".


Tôi có lỗi bên dưới, git: 'credential-' is not a git command. See 'git --help'.nhưng để bảo mật, tôi đang nâng cao câu trả lời này vì đây là lỗi duy nhất khiến tôi được nhắc nhập mật khẩu mới. Tuy nhiên, tôi tự hỏi, nếu điều này không chỉ che giấu vấn đề (mật khẩu có thực sự bị xóa không?)
ribamar

Không: rm -rf ~/.git-credentialsđã làm. Lưu ý rằng nó có thể thay đổi ( git help credential-store)
ribamar

xin lỗi, điều này thực sự không hoạt động. nó sẽ hỏi mật khẩu một lần nữa và lưu lại. sẽ loại bỏ upvote của tôi nếu được phép.
ribamar

git config --unset credential.helperxóa mục. Câu trả lời này chỉ đặt nó thành chuỗi rỗng và tạo ra lỗi mà @ribamar đã mô tả trong các nhận xét.
Lâu đài bóng tối

15

Trong Windows 2003 Server với "wincred" *, không có câu trả lời nào khác giúp tôi. Tôi đã phải sử dụng cmdkey.

  • cmdkey /list liệt kê tất cả các thông tin lưu trữ.
  • cmdkey /delete:Target xóa thông tin xác thực với tên "Target".

cmdkey / danh sách;  cmdkey / xóa: Mục tiêu

(* Ý tôi là "nhăn mặt" git config --global credential.helper wincred)


Có, cmdkeylà đối tác dòng lệnh với Thông tin xác thực Windows được mô tả trong câu trả lời đã chọn.
nicobo

15

Lỗi này xuất hiện khi bạn đang sử dụng nhiều tài khoản Git trên cùng một máy.

Nếu bạn đang sử dụng macOS thì bạn có thể xóa thông tin đăng nhập đã lưu của github.com .

Vui lòng làm theo các bước dưới đây để xóa thông tin đăng nhập của github.com .

  1. Mở truy cập Keychain
  2. Tìm github
  3. Chọn github.com và nhấp chuột phải vào nó
  4. Xóa "github.com"
  5. Hãy thử lại để Đẩy hoặc Kéo để git và nó sẽ yêu cầu thông tin đăng nhập.
  6. Nhập thông tin hợp lệ cho tài khoản kho lưu trữ.
  7. Làm xong

    nhập mô tả hình ảnh ở đây


Cảm ơn, điều này hoàn toàn hoạt động trên mac os
babygame0ver

13

Cần phải đăng nhập với github tương ứng usernamepassword

Để xóa tên người dùng và mật khẩu trong windows

Bảng điều khiển \ Tài khoản người dùng \ Trình quản lý xác thực

Chỉnh sửa cửa sổ Thông tin xác thực

Xóa người dùng hiện tại và bây giờ đi đến dấu nhắc lệnh viết lệnh đẩy, nó hiển thị một cửa sổ bật lên github để nhập username/ emailpassword.

Bây giờ chúng tôi có thể đẩy mã sau khi chuyển đổi người dùng.


13

Có lỗi tương tự khi thực hiện 'git pull' và đây là cách tôi sửa nó.

  1. Thay đổi repo thành HTTPS
  2. Chạy lệnh git config --system --unset credential.helper
  3. Chạy lệnh git config --system --add credential.helper manager
  4. Lệnh kiểm tra git pull
  5. Nhập thông tin đăng nhập trong cửa sổ đăng nhập bật lên.
  6. Git kéo hoàn thành thành công.

- hệ thống? Thế còn - global? Điều gì về không có phạm vi? Phạm vi thiết lập có nghĩa là gì?
masterxilo

Chỉ với Bước 1 đã giải quyết vấn đề của tôi.
zzxwill

11

Xóa dòng này khỏi tệp .gitconfig của bạn nằm trong thư mục người dùng hiện đang đăng nhập của Windows:

[credential]
helper = !\"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\"

Điều này làm việc cho tôi và bây giờ khi tôi đẩy đến từ xa, nó lại hỏi mật khẩu của tôi.


11

Bạn phải cập nhật nó trong Trình quản lý thông tin xác thực của bạn.

Chuyển đến Bảng điều khiển> Tài khoản người dùng> Trình quản lý thông tin> Thông tin xác thực Windows. Bạn sẽ thấy thông tin đăng nhập Git trong danh sách (ví dụ: git: https: //). Nhấp vào nó, cập nhật mật khẩu và thực hiện lệnh git pull / push từ Git bash của bạn và nó sẽ không ném thêm bất kỳ thông báo lỗi nào nữa.



10

Sử dụng phiên bản git mới nhất cho Windows trên Windows 10 Professional và tôi gặp vấn đề tương tự khi tôi có hai tài khoản GitHub khác nhau và tài khoản Bitbucket để mọi thứ trở nên khó hiểu đối với VS2017, tiện ích mở rộng git và git bash.

Trước tiên tôi đã kiểm tra cách git xử lý thông tin đăng nhập của tôi bằng lệnh này (chạy git bash với các lệnh nâng cao hoặc bạn gặp lỗi):

git config --list

Tôi đã tìm thấy mục Trình quản lý thông tin xác thực vì vậy tôi đã nhấp vào nút BẮT ĐẦU> nhập Trình quản lý thông tin xác thực và nhấp chuột trái vào biểu tượng an toàn màu vàng của trình quản lý thông tin đã khởi chạy ứng dụng. Sau đó, tôi đã nhấp vào tab Windows Credentials và tìm thấy mục nhập cho tài khoản git hiện tại của tôi là Bit-xô nên tôi đã xóa tài khoản này.

Nhưng điều này không phải là một mẹo nhỏ nên bước tiếp theo là bỏ đặt thông tin đăng nhập và tôi đã thực hiện điều này từ thư mục kho lưu trữ trên máy tính xách tay có chứa dự án GitHub mà tôi đang cố gắng đẩy từ xa. Tôi đã gõ lệnh sau:

git config --system --unset credential.helper

Sau đó, tôi đã thực hiện một cú đẩy git và tôi được nhắc nhập tên người dùng GitHub mà tôi đã nhập (đúng tên tôi cần) và sau đó mật khẩu được liên kết và mọi thứ được đẩy chính xác.

Tôi không chắc chắn vấn đề này sẽ xảy ra đến mức nào, hầu hết mọi người có thể làm việc với một kho lưu trữ nhưng tôi phải làm việc trên một số và sử dụng các nhà cung cấp khác nhau để có thể gặp lại vấn đề này.


đã làm việc cho tôi .. cảm ơn bạn
Krishnamoorthy Acharya

8

Trong trường hợp của tôi, tôi không thể tìm thấy thông tin đăng nhập được lưu trong Trình quản lý thông tin Windows (Windows 7).

Tôi đã có thể thiết lập lại thông tin đăng nhập của mình bằng cách thực hiện

git config --global credential.helper wincred

Thật ra đó là một lời ca ngợi Mary để xem liệu nó có xóa sạch thông tin của tôi không và nó có thực sự hiệu quả không.


Điều này làm việc cho tôi; Tôi KHÔNG có một mục trong Trình quản lý xác thực để xóa.
bdwakefield

7

Bạn có thể xóa dòng credential.helper=!github --credentialskhỏi tệp sau C:\Program Files\Git\mingw64\etc\gitconfigđể xóa thông tin đăng nhập cho git


7
  1. Đi đến C:\Users\<current-user>
  2. kiểm tra .git-credentialshồ sơ
  3. Xóa nội dung hoặc sửa đổi theo yêu cầu của bạn
  4. Khởi động lại thiết bị đầu cuối của bạn

giải pháp duy nhất hiệu quả với tôi
Wachburn

7

Trên Windows, ít nhất, git remote show [remote-name]sẽ hoạt động, vd

git remote show origin

Không chắc chắn tại sao downvote. Nó không hoạt động. Tôi bị mắc kẹt với mọi thứ khác.
Jason S

... Và tôi vừa mới sử dụng nó ngày hôm nay, thành công. Mỗi khi tôi thay đổi mật khẩu tại nơi làm việc, tôi cần phải làm điều này.
Jason S

2
Làm việc một cơ duyên cho tôi.
IronAces

Tương tự ở đây. Bạn thậm chí không phải ở trong một thư mục kho lưu trữ
Nicola Musatti

6

Nếu bạn muốn git quên thông tin xác thực đã lưu cũ và nhập lại tên người dùng và mật khẩu, bạn có thể thực hiện điều đó bằng lệnh bên dưới:

git credential-cache exit

Sau khi chạy lệnh trên, nếu bạn cố gắng đẩy bất cứ thứ gì, nó sẽ cung cấp tùy chọn để nhập tên người dùng và mật khẩu.


3

Điều cuối cùng đã khắc phục điều này đối với tôi là sử dụng máy tính để bàn GitHub, đi đến cài đặt kho lưu trữ và xóa người dùng: pass @ khỏi url kho lưu trữ. Sau đó, tôi đã thử đẩy từ dòng lệnh và được nhắc nhập thông tin đăng nhập. Sau khi tôi đặt những thứ đó vào mọi thứ trở lại bình thường. Cả Visual Studio và dòng lệnh đều hoạt động, và dĩ nhiên, máy tính để bàn GitHub.

Máy tính để bàn GitHub-> Kho lưu trữ-> Cài đặt kho lưu trữ-> Tab từ xa

Thay đổi Kho lưu trữ từ xa chính (nguồn gốc) từ:

https: //pork@muffins@github.com/MyProject/MyProject.git

Đến:

https://github.com/MyProject/MyProject.git

Nhấp vào để lưu"

Thông tin sẽ được xóa.


Đặt lại nguồn gốc cho cùng một từ dòng lệnh trên Windows đã giải quyết vấn đề của tôi. Tôi đang sử dụng GitLab vì vậy tôi không thể sử dụng GitHub Desktop cho việc này.
David Vargas

3

Đối với người dùng macOS:

Lỗi này xuất hiện khi bạn đang sử dụng nhiều tài khoản Git trên cùng một máy.

Vui lòng làm theo các bước dưới đây để xóa thông tin đăng nhập của github.com.

  1. Chuyển đến Trình tìm kiếm
  2. Đi đến Ứng dụng
  3. Chuyển đến Thư mục tiện ích
  4. Mở truy cập Keychain
  5. Chọn github.com và nhấp chuột phải vào nó

    Xóa "github.com"

Hãy thử lại để Đẩy hoặc Kéo để git và nó sẽ yêu cầu thông tin đăng nhập. Nhập thông tin hợp lệ cho tài khoản kho lưu trữ. Làm xong


3

Đối với Windows 10, đi đến đường dẫn bên dưới,

Bảng điều khiển \ Tài khoản người dùng \ Trình quản lý xác thực

Sẽ có 2 tab tại vị trí này,

  1. Thông tin web và 2. Thông tin Windows.

Nhấp vào tab thông tin đăng nhập Windows và tại đây bạn có thể thấy thông tin đăng nhập github được lưu trữ của mình, trong tiêu đề "Thông tin chung".

Bạn có thể xóa chúng khỏi đây và thử và sao chép lại - nó sẽ yêu cầu tên người dùng / mật khẩu ngay bây giờ vì chúng tôi vừa xóa thông tin xác thực được lưu trữ khỏi hệ thống Windows 10


2

Để xóa Trình quản lý thông tin xác thực Git cho bộ đệm Windows:

rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache

hoặc là

rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache

2

Hãy thử điều này khi không có gì như đã đề cập ở trên đang làm việc cho bạn.

git config credential.helper 'cache --timeout=30'

việc này sẽ xóa bộ nhớ cache mỗi 3 giây và sẽ yêu cầu tên người dùng và mật khẩu. Bạn có thể chạy lại lệnh với các giá trị thời gian chờ tăng lên.


1

Trong trường hợp của chúng tôi, việc xóa mật khẩu trong tệp .git-information của người dùng đã làm việc cho chúng tôi.

c:\users\[username]\.git-credentials

Vâng, một số người khác đã tuyên bố điều này nhiều lần rồi
Liam

1

Xây dựng từ câu trả lời được bình chọn cao của @ patthoyts ( https://stackoverflow.com/a/15382950/4401322 ):

Câu trả lời của anh ta sử dụng nhưng không giải thích cấu hình "cục bộ" so với "toàn cầu" so với "hệ thống". Các tài liệu git chính thức cho họ là ở đây và đáng đọc.

Ví dụ: tôi đang dùng Linux và không sử dụng cấu hình hệ thống , vì vậy tôi không bao giờ sử dụng --systemcờ, nhưng thường cần phân biệt giữa --localvà cấu hình --global.

Trường hợp sử dụng của tôi là tôi đã có hai xu hướng Github; Một cho công việc, và một cho chơi.

Đây là cách tôi sẽ xử lý vấn đề:

$ cd work
# do and commit work
$ git push origin develop
# Possibly prompted for credentials if I haven't configured my remotes to automate that. 
# We're assuming that now I've stored my "work" credentials with git's credential helper.

$ cd ~/play 
# do and commit play
$ git push origin develop                                                                   
remote: Permission to whilei/specs.git denied to whilei.                
fatal: unable to access 'https://github.com/workname/specs.git/': The requested URL returned error: 403

# So here's where it goes down:
$ git config --list | grep cred
credential.helper=store # One of these is for _local_
credential.helper=store # And one is for _global_

$ git config --global --unset credential.helper
$ git config --list | grep cred
credential.helper=store # My _local_ config still specifies 'store'
$ git config --unset credential.helper
$ git push origin develop
Username for 'https://github.com': whilei
Password for 'https://whilei@github.com':
Counting objects: 3, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 1.10 KiB | 1.10 MiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/whilei/specs.git
   b2ca528..f64f065  master -> master

# Now let's turn credential-helping back on:
$ git config --global credential.helper "store"
$ git config credential.helper "store"
$ git config --list | grep cred
credential.helper=store # Put it back the way it was.
credential.helper=store

Cũng đáng lưu ý rằng có nhiều cách để tránh vấn đề này hoàn toàn, ví dụ, bạn có thể sử dụng ~/.ssh/configcác khóa SSH được liên kết cho Github (một cho công việc, một để chơi) và các máy chủ từ xa có tên tùy chỉnh tương ứng để giải quyết bối cảnh xác thực.


1

Để thêm vào https://stackoverflow.com của @ericbn.com/a/41111629/579827 đây là các lệnh mẫu tôi đã nhúng trong tập lệnh tôi chạy để cập nhật tất cả mật khẩu của mình bất cứ khi nào chúng được gia hạn. Nó có thể không sử dụng được vì nó khá cụ thể nhưng nó cho thấy việc sử dụng thực tế trong cuộc sống cmdkey.exe.

⚠ Đây là một vỏ kịch bản chạy trong Cygwin

⚠ Điều này hoạt động vì tôi sử dụng repit git riêng mà tất cả đều xác thực với cùng một mật khẩu (có thể bạn không muốn lặp lại với cùng thông tin đăng nhập, nhưng bạn có thể sử dụng lại /listlệnh mẫu này để trích xuất danh sách thông tin đăng nhập đã đăng ký)

entries=`cmdkey.exe /list: | grep git | sed -r -e 's/^[^:]+:\s*(.*)$/\1/gm'`
for entry in ${entries}
do
    cmdkey.exe "/delete:${entry}"
    cmdkey.exe "/generic:${entry}" "/user:${GIT_USERNAME}" "/pass:${GIT_PASSWORD}"
done

0

Nếu bạn được xác thực bằng cặp khóa của mình, bạn có thể xóa hoặc di chuyển khóa riêng của mình hoặc dừng tác nhân khóa và thử.


2
anh ấy đang sử dụng https, vì vậy không có chìa khóa nào liên quan ở đây
CharlesB
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.