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://[email protected]/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ł?
windows
git
credentials
balexandre
źródło
źródło
~/.netrc
pliknetrc
, 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 .Odpowiedzi:
Jeśli ten problem występuje na komputerze z systemem Windows, wykonaj następujące czynności.
źródło
credential.helper=manager
. Aby przetestować ten typgit config --list
. Jeśli jest ustawiony na,store
poświadczenia nie są przechowywane w magazynie poświadczeń, ale są przechowywane w postaci niezaszyfrowanej.git:https://github.com
i 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.Systemsteuerung\Alle Systemsteuerungselemente\Anmeldeinformationsverwaltung
.Credential Manager
. To też działało dla mnie403
błąd za pośrednictwem Bitbucket.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.helper
jeś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:
A następnie wybierz Poświadczenia systemu Windows, aby edytować (= usunąć lub zmodyfikować) zapisane poświadczenia git dla danego adresu URL.
źródło
Control Panel\User Accounts\Credential Manager
pod Windows 7Przepisz:
A następnie zostaniesz poproszony o ponowne wprowadzenie poświadczeń.
OSTRZEŻENIE
Źródło: https://git-scm.com/docs/git-credential-store
źródło
.git/config
.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
To pokazało
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 sterowania → Konta użytkowników → Menedżer poświadczeń → 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.źródło
Spróbuj użyć poniższego polecenia.
Tutaj możesz uzyskać różne opcje zarządzania danymi uwierzytelniającymi (sprawdź poniższy ekran).
Lub możesz nawet bezpośrednio wypróbować to polecenie:
Spowoduje to ponowne monitowanie o podanie hasła przy każdym żądaniu interakcji z serwerem.
źródło
git: 'credential-manager' is not a git command. See 'git --help'.
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 ładnymiU_U
emoji znikąd :))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:
pokazuje a
linia. Rozbrajam to
a teraz poświadczenia zostały zapomniane.
źródło
git config --global --unset credential.helper
a może tylkogit config --unset credential.helper
w twoim repozytorium, jeśli w jakiś sposób ustawiłeś go tam wyraźnie.W moim przypadku Git używa systemu Windows do przechowywania poświadczeń.
Wystarczy usunąć zapisane poświadczenia zapisane na koncie Windows:
źródło
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
W ten sposób git będzie monitował o hasło za każdym razem, ignorując zawartość zapisaną w „menedżerze”.
źródło
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?)rm -rf ~/.git-credentials
zrobiłem. Pamiętaj, że może się różnić (git help credential-store
)git config --unset credential.helper
usuwa wpis. Ta odpowiedź ustawia go na pusty ciąg znaków i powoduje błąd opisany przez @ribamar w komentarzach.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ą”.(* Mam na myśli „Wincred”
git config --global credential.helper wincred
)źródło
cmdkey
jest odpowiednikiem wiersza polecenia poświadczeń systemu Windows opisanych w wybranej odpowiedzi.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 .
Gotowy
źródło
Musisz się zalogować za pomocą odpowiedniego github
username
ipassword
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
/email
ipassword
.Teraz możemy przesłać kod po zmianie użytkownika.
źródło
Wystąpił ten sam błąd podczas „ściągania git” i tak to naprawiłem.
git config --system --unset credential.helper
git config --system --add credential.helper manager
git pull
źródło
Usuń tę linię z pliku .gitconfig znajdującego się w aktualnie zalogowanym folderze użytkownika Windows:
To działało dla mnie i teraz, kiedy naciskam na zdalne, ponownie prosi o hasło.
źródło
W przypadku korzystania z Git Credential Manager dla Windows (co zwykle robią obecne wersje):
Zostało to dodane w połowie 2016 r . Aby sprawdzić, czy używany jest menedżer poświadczeń:
źródło
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.
źródło
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):
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:
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.
źródło
W moim przypadku nie mogłem znaleźć poświadczeń zapisanych w Menedżerze poświadczeń systemu Windows (Windows 7).
Wykonałem reset danych logowania
Szczerze mówiąc, to była grad od Mary, żeby zobaczyć, czy to zniszczy moje referencje i rzeczywiście zadziałało.
źródło
Możesz usunąć linię
credential.helper=!github --credentials
z następującego plikuC:\Program Files\Git\mingw64\etc\gitconfig
, aby usunąć dane uwierzytelniające dla gitźródło
C:\Users\<current-user>
.git-credentials
plikźródło
Przynajmniej w systemie Windows
git remote show [remote-name]
będzie działać, npźródło
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:
Po uruchomieniu powyższej komendy, jeśli spróbujesz cokolwiek wcisnąć, zapewni ona opcję wprowadzenia nazwy użytkownika i hasła.
źródło
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@[email protected]/MyProject/MyProject.git
Do:
https://github.com/MyProject/MyProject.git
Kliknij „Zapisz”
Poświadczenia zostaną usunięte.
źródło
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.
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
źródło
W przypadku systemu Windows 10 przejdź do ścieżki poniżej,
W tej lokalizacji będą 2 zakładki,
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
źródło
Aby wyczyścić pamięć podręczną Git Credentials Managers for Windows:
lub
źródło
Wypróbuj to, gdy nic, jak wspomniano powyżej, nie działa dla Ciebie.
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.
źródło
W naszym przypadku wyczyszczenie hasła w pliku .git-credentials użytkownika zadziałało.
źródło
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ć
--system
flagi, ale zwykle trzeba rozróżniać--local
i--global
configs.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:
Warto również zauważyć, że istnieją sposoby na całkowite uniknięcie tego problemu, na przykład możesz użyć
~/.ssh/config
kluczy SSH dla Github (jeden do pracy, drugi do gry) i odpowiednio nazwanych hostów zdalnych, aby rozwiązać także kontekstowe uwierzytelnianie.źródło
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
.źródło
Jeśli uwierzytelniasz się za pomocą pary kluczy, możesz usunąć lub przenieść klucz prywatny lub zatrzymać agenta kluczy i spróbować.
źródło