Pomocnik poświadczeń Git - zaktualizuj hasło

198

Obecnie używam GitHub przez HTTPS i mam zainstalowaną najnowszą wersję Git (1.9.0) oraz pomocnika poświadczeń Git w systemie Windows 7.

Podczas konfigurowania środowiska powiedziałem git-credentials, aby na stałe zapamiętały moją nazwę użytkownika i hasło.

Niedawno zaktualizowałem moje hasło do GitHub za pośrednictwem strony internetowej i nie mogę już pchać / wyciągać / pobierać itp.

Jak mógłbym zaktualizować swoje hasło w pomocniku git-credentials w systemie Windows 7?

Andrew Thomson
źródło
6
Prosty, użyj „git config --global credential.helper wincred” i wprowadź identyfikator użytkownika i hasło; to będzie dla ciebie zapisane, przy następnej zmianie hasła uruchom ponownie powyższe polecenie.
Akshay Lokur
@AkshayLokur to poprawna odpowiedź.
Ravimallya
Jeśli wszystko inne zawiedzie, a używasz TortoiseGit, możesz spróbować wykonać akcję za pośrednictwem tego. Na przykład pobranie lub pobranie przy użyciu Tortoise poprosi o hasło, które możesz następnie zaktualizować. Wydaje się, że to wtedy nadpisuje pamięć podręczną Git Bash i możesz ponownie użyć bash.
Paul F. Wood,

Odpowiedzi:

280

Żadna z tych odpowiedzi nie zadziałała w przypadku mojego problemu z danymi uwierzytelniającymi Git. Oto, co zadziałało, jeśli ktoś tego potrzebuje (używam Git 1.9 w systemie Windows 8.1).

Aby zaktualizować swoje poświadczenia, przejdź do Panelu sterowaniaMenedżer poświadczeńOgólne poświadczenia . Znajdź poświadczenia powiązane z kontem Git i edytuj je, aby użyć zaktualizowanego hasła.

Odniesienia: Jak zaktualizować dane logowania do Git w systemie Windows

Pamiętaj, że aby korzystać z Windows Credential Manager dla Git, musisz skonfigurować pomocnika poświadczeń w następujący sposób:

git config --global credential.helper wincred

Jeśli masz wiele kont GitHub używanych dla różnych repozytoriów, powinieneś skonfigurować poświadczenia, aby korzystały z pełnej ścieżki do repozytorium (a nie tylko z domeny, która jest domyślna):

git config --global credential.useHttpPath true
xgo
źródło
21
To powinna być zaakceptowana odpowiedź, jeśli git config --listzawiera credential.helper=wincred.
MF
6
Pracowałem dla mnie - dziękuję - i dowiedziałem się także o menedżerze poświadczeń systemu Windows.
rwalter
To. zmiana hasła nie działała, ale usunąłem poświadczenia, a następnie git push ponownie poprosił o poświadczenia i zadziałało.
BiAiB
2
Myślę, że to działa również w systemie Windows 8.1 i Windows 10. W moim przypadku: okno 10 Pro, git 2.17
Thinhbk
2
Dla każdego, kto (jak ja) usuwa zapisane poświadczenia w nadziei na kolejne pytanie, ale monit nie jest wyświetlany. Od Poświadczenia Manager można z adresem . Http lub Https jest taki sam, ważny bit jest na początku. ADDGeneric Credentialgit:http://yourserver:port/git:
A. Chiesa
101

Podczas mojej pierwszej próby pobrania Gita po zmianie hasła powiedziano mi, że moja kombinacja nazwy użytkownika i hasła jest nieprawidłowa. Było to poprawne, ponieważ pomocnik git-credential zbuforował moje stare wartości.

Jednak po ponownym uruchomieniu terminala / wiersza polecenia spróbowałem ponownie pobrać git i tym razem pomocnik poświadczeń poprosił mnie o wpisanie mojej nazwy użytkownika i hasła GitHub.

Podejrzewam, że początkowe nieudane żądanie pobierania Git w połączeniu z ponownym uruchomieniem terminala / wiersza polecenia rozwiązało to dla mnie.

Mam nadzieję, że ta odpowiedź pomoże komukolwiek w podobnej sytuacji w przyszłości!

Andrew Thomson
źródło
2
Po prostu uruchom ponownie Git Bash, wyświetli się okno dialogowe do wprowadzenia nowej nazwy użytkownika / hasła.
Quan
2
Dla przypomnienia, byłem w stanie to obejść, wykonując kolejne pobieranie / pobieranie bez ponownego uruchamiania mojej sesji Powershell w Windows 7. Windows poprosił mnie o moje nowe poświadczenia przy drugiej próbie.
Bender the Greatest
zrestartowanie konsoli / aplikacji sprawiło, że „Wincred” działa dla mnie. (Musiałem zrestartować konsolę i „Atom” i wszystko działało dobrze)
low_rents
3
Wydaje się, że wprowadzenie drugiego polecenia git, które wymaga poświadczeń po raz drugi, nie tylko git fetchdziałało git clone.
navigator_
Dziękuję Ci bardzo! Za każdym razem, gdy zmieniam hasło do domeny, muszę pamiętać o tym, jak zaktualizować swoje dane uwierzytelniające. Pobierz narzędzie - działało dla mnie!
Alexander Brattsev
74

Rozwiązanie za pomocą wiersza polecenia dla systemów Windows, Linux i MacOS

Jeśli zaktualizowałeś hasło GitHub na serwerze GitHub, przy pierwszej próbie wykonania git fetch/pull/pushpolecenia generuje komunikat o niepowodzeniu uwierzytelnienia .

Wykonaj to samo git fetch/pull/pushpolecenie po raz drugi i wyświetli monit o podanie poświadczeń (nazwa użytkownika i hasło). Wprowadź nazwę użytkownika i nowe zaktualizowane hasło do serwera GitHub, a logowanie się powiedzie.

Nawet miałem ten problem i wykonałem powyższe kroki i zrobiłem !!

Farooque
źródło
@ Vincent: jaki masz problem?
Farooque,
2
Właśnie otrzymuję powtarzające się zdalne: nieprawidłowa nazwa użytkownika lub hasło. fatal: Uwierzytelnienie nie powiodło się
RichMeister
1
@RichMeister: Po raz drugi poprosi o nazwę użytkownika / hasło. Podaj tylko swoją nazwę użytkownika / nowe_hasło.
Farooque
3
Pracowałem dla mnie w systemie MacOS z buforowanymi poświadczeniami po zmianie hasła. Po raz pierwszy pobierz „Uwierzytelnianie nie powiodło się dla ...”. Próbowałem jeszcze raz i został poproszony o podanie poświadczeń, wprowadź identyfikator użytkownika i nowe hasło, a teraz znów działa
Kevin Hooke
1
To najlepsza / najłatwiejsza odpowiedź
Ryan Boken
73

Jeśli jesteś użytkownikiem systemu Windows, możesz usunąć lub zaktualizować swoje poświadczenia w Credential Manager.

W systemie Windows 10 przejdź do poniższej ścieżki:

Panel sterowaniaWszystkie elementy panelu sterowaniaMenedżer poświadczeń

Lub wyszukaj „menedżer danych logowania” w sekcji „Wyszukaj w systemie Windows” w menu Start.

Następnie w Menedżerze poświadczeń wybierz „Poświadczenia systemu Windows”.

Menedżer poświadczeń wyświetli wiele pozycji, w tym Twoją perspektywę i repozytorium GitHub w sekcji „Ogólne poświadczenia”

Kliknij strzałkę rozwijaną po prawej stronie Git: wyświetli opcje edycji i usuwania. Jeśli usuniesz, wyskakujące okienko poświadczeń pojawi się następnym razem, gdy pobierzesz lub pociągniesz. Lub możesz bezpośrednio edytować poświadczenia tam.

Vins
źródło
3
Po wypróbowaniu innych opcji tylko ta działała dla mnie. Znalazłem informacje tutaj: cmatskas.com/how-to-update-your-git-credentials-on-windows
neomib
Uwaga: ta kontrola NIE JEST DOSTĘPNA PRZEZ METRO UI „PANEL STEROWANIA”! Musisz uruchomić control.exeręcznie, aby zobaczyć tę kontrolę.
AnrDaemon
To bardzo pomogło! Nawet nie wiedziałem, że te narzędzia istnieją.
szczęka
35

Najpierw znajdź wersję, której używasz za pomocą polecenia Git git --version. Jeśli masz nowszą wersję niż 1.7.10, po prostu użyj tego polecenia:

git config --global credential.helper wincred

Następnie wykonaj git fetch, a następnie pojawi się monit o aktualizację hasła.

Teraz nie będzie monitował o podanie hasła wielokrotnie w Git.

Sireesh Yarlagadda
źródło
6
To nie odpowiada na pytanie
disklosr
2
@disklosr Tak to robi. Zmusza Gita do monitowania o zaktualizowane hasło przy następnej akcji zdalnej.
Nilpo,
1
@Nilpo Czym jest zatem „zdalna akcja”? Czy „git push origin xxx” nie powinno być działaniem zdalnym? To nie robi tego. zamiast tego dostaję się zdalnie: nieprawidłowa nazwa użytkownika lub hasło.
RichMeister
1
To zadziałało dla mnie. Po wykonaniu tego polecenia. Wykonaj polecenie „git fetch”, zostaniesz poproszony o podanie poświadczeń, podaj je.
Alex
Dlaczego --global? Czy nie ryzykuję ponownego pytania o wszystkie moje repozytoria zamiast tylko jednego, którego dotyczy?
Thomas Weller,
29

Wydaje mi się, że odpowiedzi tutaj są nieaktualne. Dla mnie pod Windows 10 i Git 2.15.0 to zrobiło:

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

A następnie, aby ustawić nową nazwę użytkownika i hasło:

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

Następnie, jeśli poświadczenia działają teraz na pożądanym hoście docelowym, powinniśmy użyć opcji git credential approve- jak wspomniano w typowym użyciu poświadczeń Git (krok 4) - aby poinformować pomocników poświadczeń o oznaczeniu poświadczeń jako zatwierdzonych i ponownym ich użyciu w przyszłych połączeniach.

atavio
źródło
1
Dla mnie, robiąc git credential fillczęść taką, jaka jest, automatycznie wygenerowała stare złe hasło; Musiałem ustawić nowy ręcznie za pomocą tego polecenia, aby działało; w każdym razie dzięki, ta odpowiedź pomogła mi z tym problemem!
Emerson Cardoso
Poprowadź na górę! Ile straconego czasu na czytanie przestarzałych rozwiązań. W rzeczywistości winę ponosi tutaj Git Credential Manager. Myślę, że muszę przejść przez ból, gdy hasła domen są obracane.
Janis Veinbergs,
1
po fill, nie powinniśmy używać approve?
Z. Khullah
Na moim komputerze git credential rejectnigdy się nie kończy
Thomas Weller,
@ThomasWeller musisz nacisnąć klawisz Enter, aby zostawić tam pustą linię, a następnie zostanie wykonana.
atavio
19

FWIW, natknąłem się na ten sam problem (i mój szef też, więc stał się bardziej intensywny).

Natychmiastowym rozwiązaniem jest usunięcie lub poprawienie wpisów Git w Menedżerze poświadczeń systemu Windows. Możesz mieć trudności ze znalezieniem go w zlokalizowanej wersji systemu Windows, ale na szczęście możesz go uruchomić z dobrego, dobrego okna dialogowego Windows+ Ruruchom za pomocą control keymgr.dlllub control /name Microsoft.CredentialManager(lub rundll32.exe keymgr.dll, KRShowKeyMgrjeśli wolisz klasyczny wygląd). Lub umieścić to w pliku wsadowym dla swoich kolegów: cmdkey /delete:git:http://your.git.server.company.com.

W Git Credential Manager Microsoftu jest to znany problem, który można naprawić już na początku 2019 r. (Więc nie wstrzymuj oddechu).

Jakob
źródło
1
Zrozumienie Menedżera poświadczeń systemu Windows za pomocą interfejsu użytkownika panelu sterowania jest świetne, ale staje się męczące, gdy trzeba aktualizować na wszystkich komputerach. To pojedyncze polecenie jest świetne, ponieważ osiąga to samo (usuwa istniejące niepoprawne dane uwierzytelniające), co zmusza git do ponownego monitowania o dane uwierzytelniające następnym razem, gdy będą ich potrzebować. W systemie Windows Server 2016 składnia polecenia usuwania poświadczeń jest nieco inna: cmdkey /delete:git:https://your.git.server.company.com
Podstawowy
/delete{:<TargetName>}jest oficjalną składnią , ale odkryłem, że skrót /del <TargetName>działa również, przynajmniej w Windows 10 (1803).
Jakob,
świetny pomysł na alias! delpw = !cmdkey /delete:git:$(git remote get-url $1). Zastosowanie: git delpw origin(ps: / del tutaj nie działało, również Win 10)
Z. Khullah
6

Tylko cdw katalogu, w którym zainstalowałeś git-credential-winstore. Jeśli nie wiesz gdzie, po prostu uruchom to w Git Bash:

cat ~/.gitconfig

Powinien wydrukować coś, co wygląda jak:

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

W takim przypadku repozytorium to C: \ ProgramFile \ GitCredStore. Gdy znajdziesz się w tym folderze za pomocą Git Bash lub polecenia Windows, po prostu wpisz:

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

Nie zapomnij nacisnąć Enterdwa razy później protocol=https.

Luc DUZAN
źródło
2

Żadne z obecnych rozwiązań nie działało dla mnie z git bash 2.26.2. Powinno to działać w każdym przypadku, jeśli używasz menedżera poświadczeń systemu Windows.

Jednym z problemów jest uruchomienie menedżera poświadczeń systemu Windows dla zalogowanego użytkownika. Na przykład w moim przypadku uruchamiam git bash prawym przyciskiem myszy, uruchamiam jako administrator. Dlatego moje przechowywane poświadczenia są w menedżerze poświadczeń, do których nie mam dostępu za pomocą GUI systemu Windows, jeśli nie zaloguję się do systemu Windows jako administrator.

Aby to naprawić:

  • Otwórz cmd jako administrator (lub jakikolwiek użytkownik, z którym uruchomisz bash)
  • Przejdź do systemu windows / system32
  • Wpisz cmdkey /list. Twoje stare dane uwierzytelniające powinny pojawić się tutaj, z fragmentem o treści ... target: xxx ...
  • Wpisz cmdkey /delete:xxx, gdzie xxx jest celem z poprzedniego wiersza

Powinno to potwierdzić, że dane logowania zostały usunięte. Następnym razem, gdy wykonasz jakąkolwiek operację w git bash, która wymaga uwierzytelnienia, wyskakujące okienko poprosi o podanie poświadczeń.

Jorge.V
źródło