Usuń poświadczenia z Git


623

Pracuję z kilkoma repozytoriami, ale ostatnio pracowałem tylko w naszym wewnętrznym i wszystko było świetnie.

Dzisiaj musiałem zatwierdzić i wcisnąć kod do innego, ale mam pewne problemy.

$ 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

Nic nie mogę zrobić, co spowodowałoby ponowne wprowadzenie hasła.

Jak mogę zresetować dane uwierzytelniające w moim systemie, aby Git poprosił mnie o hasło do tego repozytorium?

Próbowałem:

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

w celu rozbrojenia hasła

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

w celu uniknięcia buforowania referencji ...

Wydaje się, że nic nie działa; czy ktoś ma lepszy pomysł?


Czy masz ~/.netrcplik
robinst

2
@robinst to maszyna z systemem Windows i nie mogę znaleźć tego pliku, nawet z Git Bash ...
balexandre

@balexandre dla komputera z systemem Windows, wolę używać nowego pomocnika poświadczeń (git 1.8.3) netrc, który przechowałby wiele poświadczeń w zaszyfrowanym pliku. Jest to lepsze niż wprowadzanie hasła za każdym razem dla każdej sesji, ponieważ pamięć podręczna tylko „buforuje” hasło przez określony czas. Zobacz pełny przykład tutaj .
VonC

Nie mam .netrc. Mam plik w ~ (C: \ Users \ Myself) o nazwie .git-credentials, ale usunięcie go nie zadziałało, wciąż jestem zalogowany do Git Shell. Ponadto wydaje się, że Menedżer poświadczeń panelu sterowania niczego nie przechowuje. Lokalne i globalne pliki konfiguracyjne Git wydają się być w porządku. Odziedziczyłem stację roboczą od pracownika, który odszedł, więc może być tak, że skonfigurował jakiś niekonwencjonalny mechanizm buforowania poświadczeń, że nie mam pojęcia, jak się wyłączyć. Mam nadzieję, że takie zachowanie NIE JEST domyślnym ustawieniem Git Windows. Na Macu buforowanie poświadczeń jest domyślne, ale przynajmniej pojawia się w Keychain Access.
damix911,

Pełniejszą odpowiedź, która działa również w systemach Linux, Windows i Mac OS X, patrz stackoverflow.com/a/39944557/3906760
MrTux,

Odpowiedzi:


653

Jeśli ten problem występuje na komputerze z systemem Windows, wykonaj następujące czynności.

  • Idź do Credential Manager
  • Przejdź do poświadczeń systemu Windows
  • Usuń wpisy w obszarze Poświadczenia ogólne
  • Spróbuj połączyć się ponownie. Tym razem powinien wyświetlić monit o podanie prawidłowej nazwy użytkownika i hasła.

Idź do Credential Manager

Przejdź do Poświadczeń systemu Windows i usuń wpisy w obszarze Poświadczenia ogólne


4
Jest to istotne tylko wtedy, gdy credential.helper=manager. Aby przetestować ten typ git config --list. Jeśli jest ustawiony na, storepoświadczenia nie są przechowywane w magazynie poświadczeń, ale są przechowywane w postaci niezaszyfrowanej.
Liam,

3
Musiałem tylko usunąć dane uwierzytelniające git:https://github.comi zostałem poproszony o podanie mojej nazwy użytkownika / hasła przy następnym klonowaniu repozytorium przy użyciu PyCharm. Miałem więcej niż jedno konto github, a niewłaściwe zostało zapisane w pamięci podręcznej.
dotcomly

22
Jeśli ktoś szuka tego na zlokalizowanej w Niemczech maszynie, na ścieżce znajduje się „Anmeldeinformationsverwaltung”Systemsteuerung\Alle Systemsteuerungselemente\Anmeldeinformationsverwaltung .
davidenke

3
Alternatywnie możesz zmienić użytkownika / hasło w Credential Manager. To też działało dla mnie
Daniel Lerps,

Usunięcie poświadczeń rozwiązało mój 403błąd za pośrednictwem Bitbucket.
Eido95

673

Pamięć podręczna poświadczeń Git uruchamia proces demona, który buforuje twoje poświadczenia w pamięci i rozdaje je na żądanie. Więc zabicie pamięci podręcznej git-credential-cache - proces demona wyrzuca je wszystkie i powoduje ponowne monitowanie o podanie hasła, jeśli nadal będziesz używać go jako opcji cache.helper.

Można również wyłączyć użycie pamięci podręcznej poświadczeń Git za pomocą git config --global --unset credential.helper. Następnie zresetuj to, a buforowane poświadczenia będą nadal dostępne dla innych repozytoriów (jeśli istnieją). Być może trzeba to zrobić, git config --system --unset credential.helperjeśli zostało to ustawione w pliku konfiguracji systemu (na przykład Git dla systemu Windows 2).

W systemie Windows lepiej jest użyć pomocnika menedżera ( git config --global credential.helper manager). Przechowuje to twoje poświadczenia w magazynie poświadczeń systemu Windows, który ma interfejs Panelu sterowania, w którym możesz usunąć lub edytować zapisane poświadczenia. W tym sklepie Twoje dane są zabezpieczone logowaniem do systemu Windows i mogą trwać przez wiele sesji. Menedżer pomocnika zawarte w Git dla Windows 2.x zastąpiła wcześniejszą wincred pomocnika, który został dodany w Git dla Windows 1.8.1.1. Podobny pomocnik o nazwie winstore jest również dostępny online i był używany z GitExtensions, ponieważ oferuje interfejs bardziej oparty na GUI. Menedżer pomocnika oferuje ten sam interfejs GUI jako winstore .

Wyodrębnij ze strony obsługi systemu Windows 10, szczegółowo opisując menedżera poświadczeń systemu Windows:

Aby otworzyć Menedżera poświadczeń, wpisz „menedżer poświadczeń” w polu wyszukiwania na pasku zadań i wybierz Panel sterowania poświadczeń .

A następnie wybierz Poświadczenia systemu Windows, aby edytować (= usunąć lub zmodyfikować) zapisane poświadczenia git dla danego adresu URL.


197
Znalazłem panel sterowania poświadczeniami systemu Windows Control Panel\User Accounts\Credential Managerpod Windows 7
Steve Pitchers

2
Czy zabicie procesu nie pozostawia gdzieś żadnych śladów, aby hasło było nadal dostępne? Zgodnie z instrukcją git są one przechowywane jako „zwykły tekst”.
Ufos,

1
W systemie Windows 8.1 „Poświadczenia systemu Windows” znajdowały się w obszarze Poświadczenia ogólne i git: gitlab.com lub wybrany serwer git.
Jeff

5
W systemie Windows 8/10 szczegółowe ustawienia konta użytkownika znajdują się w „klasycznym” panelu sterowania, a nie w aplikacji „Ustawienia” (nowoczesny interfejs użytkownika). Aby uniknąć zamieszania.
DanielH

1
w systemie Windows 10 Przejdź do Panel sterowania \ Wszystkie elementy Panelu sterowania \ Menedżer poświadczeń. Może istnieć ogólne poświadczenie dla GitHub. Możesz zaktualizować nazwę użytkownika i hasło.
Eldhose Abraham

155

Przepisz:

$ git config credential.helper store

A następnie zostaniesz poproszony o ponowne wprowadzenie poświadczeń.

OSTRZEŻENIE

Korzystanie z tego pomocnika spowoduje przechowywanie haseł niezaszyfrowanych na dysku

Źródło: https://git-scm.com/docs/git-credential-store


35
to polecenie nie pyta o ponowne podanie moich danych uwierzytelniających, to polecenie nic nie robi
Shirish Herwade

3
@ShirishHerwade spróbuj git pull, wtedy zobaczysz ekran zachęty
ismailcem

2
@jkokorian Aby cofnąć to polecenie, usuń odpowiednie linie z .git/config.
Zenadix

110

Napotkałem ten sam problem, co PO. Zajęło mi to moje stare poświadczenia Git przechowywane w systemie i chciałem używać Git z moimi nowymi poświadczeniami, więc uruchomiłem polecenie

$ git config --system --list

To pokazało

credential.helper=manager

Ilekroć to robiłem git push, zabierałem swoją starą nazwę użytkownika, którą przywróciłem dawno temu, i chciałem użyć nowego konta GitHub do wypychania zmian. Później odkryłem, że moje stare poświadczenia konta GitHub były przechowywane w Panelu sterowaniaKonta użytkownikówMenedżer poświadczeńZarządzaj poświadczeniami systemu Windows .

Zarządzaj poświadczeniami systemu Windows

Właśnie usunąłem te dane uwierzytelniające, a kiedy je wykonałem git push, poprosiłem mnie o moje dane uwierzytelniające w GitHub i działało to jak urok.


Dobra ilustracja najnowszego Git Credential Manager ( github.com/Microsoft/Git-Credential-Manager-for-Windows ), który działa poprzez przechowywanie poświadczeń ( github.com/Microsoft/Git-Credential-Manager-for-Windows/ Issues /… ) +1
VonC

1
@VonC Zajęło mi to jeden dzień, ponieważ nie byłem świadomy tego mechanizmu przechowywania poświadczeń.
Mourya,

Rzeczywiście jest dość nowy. Dziękujemy za wzmiankę o tym tutaj.
VonC

Jest to prawdopodobnie lepsza odpowiedź niż „zaakceptowana”, co dla mnie oznacza, że ​​należy podważyć wszystkie dane uwierzytelniające. Zdecydowanie mi pomógł.
VictorLegros

52

Spróbuj użyć poniższego polecenia.

git credential-manager

Tutaj możesz uzyskać różne opcje zarządzania danymi uwierzytelniającymi (sprawdź poniższy ekran).

Wpisz opis zdjęcia tutaj

Lub możesz nawet bezpośrednio wypróbować to polecenie:

git credential-manager uninstall

Spowoduje to ponowne monitowanie o podanie hasła przy każdym żądaniu interakcji z serwerem.


10
Dlaczego dostaję -git: 'credential-manager' is not a git command. See 'git --help'.
Saikat

2
Nie jestem pewien, dlaczego to nie działa, ale nawet w najnowszej wersji git jest dostępne. Proszę zapoznać się z tym linkiem, aby uzyskać więcej informacji - git-scm.com/book/gr/v2/Git-Tools-Credential-Storage
Himanshu Aggarwal

3
Got 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.(z ładnymi U_Uemoji znikąd :))
jeromej

1
Jedyne rozwiązanie, które działało dla mnie w systemie Windows z GitBash.
alain.janinm,

może na bok, ale zainstalowałem git przez choco, a ta metoda [odinstalowania] była dla mnie dobra do ściągnięcia repo na wdrożonym komputerze bez przechowywania poświadczeń
beep_check

32

Znalazłem coś, co dla mnie zadziałało. Kiedy napisałem swój komentarz do PO, nie udało mi się sprawdzić pliku konfiguracji systemu:

git config --system -l

pokazuje a

credential.helper=!github --credentials

linia. Rozbrajam to

git config --system --unset credential.helper

a teraz poświadczenia zostały zapomniane.


2
Ankur, może być konieczne uruchomienie sugerowanego polecenia w podobny sposób 2-3 razy, jeśli skonfigurowano kilka pomocników poświadczeń. git config --global --unset credential.helpera może tylko git config --unset credential.helperw twoim repozytorium, jeśli w jakiś sposób ustawiłeś go tam wyraźnie.
dragon788

dzięki za rozwiązanie. Tylko szczegół: w moim przypadku musiałem uruchomić
wiersz

30

W moim przypadku Git używa systemu Windows do przechowywania poświadczeń.

Wystarczy usunąć zapisane poświadczenia zapisane na koncie Windows:

Menu poświadczeń systemu Windows


1
Czym różni się to od tej odpowiedzi ? czy ten ?
Liam,

20
git config --list

pokaże credential.helper = manager(to jest na komputerze z systemem Windows)

Aby wyłączyć tę buforowaną nazwę użytkownika / hasło dla bieżącego lokalnego folderu git, po prostu wpisz

git config credential.helper ""

W ten sposób git będzie monitował o hasło za każdym razem, ignorując zawartość zapisaną w „menedżerze”.


Mam poniższy błąd git: 'credential-' is not a git command. See 'git --help'., ale ze względów bezpieczeństwa popieram tę odpowiedź, ponieważ jest to jedyna prośba o podanie nowego hasła. Zastanawiam się jednak, czy to nie tylko maskowanie problemu (czy hasło naprawdę zostało usunięte?)
ribamar

Nie: rm -rf ~/.git-credentialszrobiłem. Pamiętaj, że może się różnić ( git help credential-store)
ribamar

przepraszam, to naprawdę nie działa. ponownie poprosi o hasło i zapisze je ponownie. usunę moją opinię, jeśli będzie to dozwolone.
ribamar

git config --unset credential.helperusuwa wpis. Ta odpowiedź ustawia go na pusty ciąg znaków i powoduje błąd opisany przez @ribamar w komentarzach.
Dark Castle

15

W Windows 2003 Server z „wincred” * żadna inna odpowiedź mi nie pomogła. Musiałem użyć cmdkey.

  • cmdkey /list wyświetla wszystkie przechowywane poświadczenia.
  • cmdkey /delete:Target usuwa poświadczenie z nazwą „docelową”.

cmdkey / list;  cmdkey / delete: Cel

(* Mam na myśli „Wincred” git config --global credential.helper wincred)


Tak, cmdkeyjest odpowiednikiem wiersza polecenia poświadczeń systemu Windows opisanych w wybranej odpowiedzi.
nicobo

15

Ten błąd pojawia się, gdy używasz wielu kont Git na tym samym komputerze.

Jeśli używasz systemu macOS, możesz usunąć zapisane poświadczenia z github.com .

Wykonaj poniższe kroki, aby usunąć dane uwierzytelniające github.com .

  1. Otwórz dostęp do pęku kluczy
  2. Znajdź github
  3. Wybierz github.com i kliknij go prawym przyciskiem myszy
  4. Usuń „github.com”
  5. Spróbuj ponownie wcisnąć lub pociągnąć, aby git, a poprosi o poświadczenia.
  6. Wprowadź prawidłowe dane uwierzytelniające dla konta repozytorium.
  7. Gotowy

    wprowadź opis zdjęcia tutaj


Dzięki, to doskonale działa na Mac OS
babygame0ver

13

Musisz się zalogować za pomocą odpowiedniego github usernameipassword

Aby usunąć nazwę użytkownika i hasło w systemie Windows

Panel sterowania \ Konta użytkowników \ ​​Menedżer poświadczeń

Edytuj poświadczenia systemu Windows

Usuń istniejącego użytkownika, a teraz przejdź do wiersza poleceń, napisz polecenie push. Wyświetli wyskakujące okienko github, aby wprowadzić username/ emaili password.

Teraz możemy przesłać kod po zmianie użytkownika.


13

Wystąpił ten sam błąd podczas „ściągania git” i tak to naprawiłem.

  1. Zmień repo na HTTPS
  2. Uruchom polecenie git config --system --unset credential.helper
  3. Uruchom polecenie git config --system --add credential.helper manager
  4. Polecenie testowe git pull
  5. Wprowadź poświadczenia w wyskakującym oknie logowania.
  6. Pobieranie Git zakończyło się pomyślnie.

--system? Co z --global? Co z brakiem zakresu? Co oznacza zakres ustawień?
masterxilo

Tylko krok 1 rozwiązał mój problem.
zzxwill

11

Usuń tę linię z pliku .gitconfig znajdującego się w aktualnie zalogowanym folderze użytkownika Windows:

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

To działało dla mnie i teraz, kiedy naciskam na zdalne, ponownie prosi o hasło.



10

Musisz go zaktualizować w Menedżerze poświadczeń.

Wybierz Panel sterowania> Konta użytkowników> Menedżer poświadczeń> Poświadczenia systemu Windows. Zobaczysz poświadczenia Git na liście (np. Git: https: //). Kliknij na niego, zaktualizuj hasło i uruchom polecenie git pull / push z Git bash, a nie będzie już generował żadnych komunikatów o błędach.


10

Korzystając z najnowszej wersji git dla Windowsa na Windows 10 Professional, miałem podobny problem, przez co mam dwa różne konta GitHub i konto Bitbucket, więc sprawy stały się nieco mylące dla VS2017, rozszerzeń git i git bash.

Najpierw sprawdziłem, jak git obsługuje moje dane uwierzytelniające za pomocą tego polecenia (uruchom git bash z podniesionymi poleceniami lub zobaczysz błędy):

git config --list

Znalazłem wpis Credential Manager, więc kliknąłem przycisk START> wpisałem Credential Manager i kliknąłem lewym przyciskiem myszy na żółtą bezpieczną ikonę menedżera poświadczeń, która uruchomiła aplikację. Następnie kliknąłem zakładki Poświadczenia systemu Windows i znalazłem wpis dla mojego obecnego konta git, które okazało się być Bit-bucket, więc usunąłem to konto.

Ale to nie pomogło, więc następnym krokiem było rozbrojenie poświadczeń i zrobiłem to z katalogu repozytorium na moim laptopie, który zawiera projekt GitHub, który próbuję przekazać do zdalnego. Wpisałem następujące polecenie:

git config --system --unset credential.helper

Następnie wykonałem polecenie git push i zostałem poproszony o podanie nazwy użytkownika GitHub (poprawnej, której potrzebowałem), a następnie powiązanego hasła i wszystko zostało poprawnie wypchnięte.

Nie jestem pewien, jak duży problem się z tym wiąże, większość ludzi pewnie pracuje z jednego repozytorium, ale muszę pracować z kilkoma różnymi dostawcami i używać różnych dostawców, więc mogę ponownie napotkać ten problem.


pracował dla mnie .. dziękuję
Krishnamoorthy Acharya

8

W moim przypadku nie mogłem znaleźć poświadczeń zapisanych w Menedżerze poświadczeń systemu Windows (Windows 7).

Wykonałem reset danych logowania

git config --global credential.helper wincred

Szczerze mówiąc, to była grad od Mary, żeby zobaczyć, czy to zniszczy moje referencje i rzeczywiście zadziałało.


To zadziałało dla mnie; NIE miałem wpisu w Menedżerze poświadczeń do usunięcia.
bdwakefield

7

Możesz usunąć linię credential.helper=!github --credentialsz następującego pliku C:\Program Files\Git\mingw64\etc\gitconfig, aby usunąć dane uwierzytelniające dla git


7
  1. Iść do C:\Users\<current-user>
  2. sprawdź .git-credentialsplik
  3. Usuń zawartość lub zmodyfikuj zgodnie z wymaganiami
  4. Uruchom ponownie terminal

jedyne rozwiązanie, które zadziałało dla mnie
Wachburn

7

Przynajmniej w systemie Windows git remote show [remote-name]będzie działać, np

git remote show origin

Nie jestem pewien, dlaczego głosowanie negatywne. To działa. Utknąłem ze wszystkim innym.
Jason S

... i użyłem go ponownie dzisiaj, z powodzeniem. Za każdym razem, gdy zmieniam hasło w pracy, muszę to zrobić.
Jason S

2
Zadziałał dla mnie urok.
IronAces,

To samo tutaj. Nie musisz nawet znajdować się w katalogu repozytorium
Nicola Musatti

6

Jeśli chcesz, aby git zapomniał stare zapisane poświadczenia i ponownie wprowadził nazwę użytkownika i hasło, możesz to zrobić za pomocą poniższego polecenia:

git credential-cache exit

Po uruchomieniu powyższej komendy, jeśli spróbujesz cokolwiek wcisnąć, zapewni ona opcję wprowadzenia nazwy użytkownika i hasła.


3

Ostatecznie naprawiłem to, używając pulpitu GitHub, przechodząc do ustawień repozytorium i usuwając użytkownika: pass @ z adresu URL repozytorium. Następnie podjąłem próbę wypchnięcia z wiersza polecenia i zostałem poproszony o podanie danych logowania. Po tym, jak je włożyłem, wszystko wróciło do normy. Działa zarówno Visual Studio, jak i wiersz poleceń, i oczywiście pulpit GitHub.

GitHub Desktop-> Repozytorium-> Ustawienia repozytorium-> karta Zdalne

Zmień podstawowe zdalne repozytorium (pochodzenie) z:

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

Do:

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

Kliknij „Zapisz”

Poświadczenia zostaną usunięte.


Zresetowanie źródła do tego samego z wiersza poleceń w systemie Windows rozwiązało mój problem. Korzystam z GitLab, więc nie mogłem do tego użyć GitHub Desktop.
David Vargas,

3

Dla użytkowników systemu macOS:

Ten błąd pojawia się, gdy używasz wielu kont Git na tym samym komputerze.

Wykonaj poniższe kroki, aby usunąć dane uwierzytelniające github.com.

  1. Idź do Findera
  2. Przejdź do aplikacji
  3. Przejdź do folderu narzędzi
  4. Otwórz dostęp do pęku kluczy
  5. Wybierz github.com i kliknij go prawym przyciskiem myszy

    Usuń „github.com”

Spróbuj ponownie wcisnąć lub pociągnąć, aby git, a poprosi o poświadczenia. Wprowadź prawidłowe dane uwierzytelniające dla konta repozytorium. Gotowy


3

W przypadku systemu Windows 10 przejdź do ścieżki poniżej,

Panel sterowania \ Konta użytkowników \ ​​Menedżer poświadczeń

W tej lokalizacji będą 2 zakładki,

  1. Poświadczenia sieciowe i 2. Poświadczenia systemu Windows.

Kliknij kartę Poświadczenia systemu Windows i tutaj możesz zobaczyć zapisane poświadczenia github pod nagłówkiem „Poświadczenia ogólne”.

Możesz je usunąć tutaj i spróbować ponownie sklonować - poprosi teraz o nazwę użytkownika / hasło, ponieważ właśnie usunęliśmy przechowywane poświadczenia z systemu Windows 10


2

Aby wyczyścić pamięć podręczną Git Credentials Managers for Windows:

rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache

lub

rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache

2

Wypróbuj to, gdy nic, jak wspomniano powyżej, nie działa dla Ciebie.

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

to usunie pamięć podręczną co 3 sekundy i poprosi o nazwę użytkownika i hasło. Możesz ponownie uruchomić polecenie ze zwiększonymi wartościami limitu czasu.


1

W naszym przypadku wyczyszczenie hasła w pliku .git-credentials użytkownika zadziałało.

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

Tak, kilka innych osób oświadczyło to już wiele razy
Liam

1

Budowanie na podstawie wysoko głosowanej odpowiedzi @ patthoyts ( https://stackoverflow.com/a/15382950/4401322 ):

Jego odpowiedź używa, ale nie wyjaśnia konfiguracji „lokalna” vs. „globalna” vs. „systemowa”. Oficjalna dokumentacja git dla nich jest tutaj i warto ją przeczytać.

Na przykład, jestem na Linux, a nie używać systemu config, więc nie mogę użyć --systemflagi, ale zwykle trzeba rozróżniać --locali --globalconfigs.

Mój przypadek użycia jest taki, że mam dwa dane Github; jeden do pracy, a drugi do zabawy.

Oto jak poradziłbym sobie z problemem:

$ 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

Warto również zauważyć, że istnieją sposoby na całkowite uniknięcie tego problemu, na przykład możesz użyć ~/.ssh/configkluczy SSH dla Github (jeden do pracy, drugi do gry) i odpowiednio nazwanych hostów zdalnych, aby rozwiązać także kontekstowe uwierzytelnianie.


1

Aby dodać do https://stackoverflow.com/a/41111629/579827 @ericbn, oto przykładowe polecenia, które osadziłem w skrypcie, który uruchamiam, aby zaktualizować wszystkie moje hasła przy każdym odnowieniu. Prawdopodobnie nie nadaje się do użycia, ponieważ jest dość specyficzny, ale pokazuje rzeczywiste użycie w życiu cmdkey.exe.

⚠ Jest to powłoka skrypt uruchomić w Cygwin

Works Działa to, ponieważ korzystam z prywatnych repozytoriów git, które uwierzytelniają się przy użyciu tego samego hasła (prawdopodobnie nie chcesz zapętlać tych samych poświadczeń, ale możesz ponownie użyć tego przykładowego /listpolecenia, aby wyodrębnić listę już zarejestrowanych poświadczeń) ⚠

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

Jeśli uwierzytelniasz się za pomocą pary kluczy, możesz usunąć lub przenieść klucz prywatny lub zatrzymać agenta kluczy i spróbować.


2
używa https, więc nie ma tu żadnego klucza
CharlesB
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.