Jak zapisać nazwę użytkownika i hasło w git [GitExtension]?

1235

Chcę używać funkcji push i pull automatycznie w GitExtension , bez podawania mojego użytkownika i hasła za każdym razem.

Jak mogę zapisać swoje dane uwierzytelniające w git?

Edson Cezar
źródło
1
Możesz także dokonać uwierzytelnienia przez SSH: stackoverflow.com/questions/6565357/…
Anton Tarasenko
1
@AntonTarasenko mój gitconfig nic nie mówi o Proxy, tylko [użytkownik] email = [email protected] name = uname [dane uwierzytelniające] helper = store
gc7__

Odpowiedzi:

2196

Biegać

git config --global credential.helper store

następnie

git pull

podaj nazwę użytkownika i hasło, a dane te zostaną zapamiętane później. Poświadczenia są przechowywane w pliku na dysku, z uprawnieniami do dysku „tylko do odczytu / zapisu przez użytkownika”, ale nadal w postaci zwykłego tekstu.

Jeśli chcesz zmienić hasło później

git pull

Nie powiedzie się, ponieważ hasło jest niepoprawne, git następnie usuwa użytkownika naruszającego hasło + hasło z ~/.git-credentialspliku, więc teraz uruchom ponownie

git pull

aby podać nowe hasło, aby działało jak wcześniej.

Neetika
źródło
6
jak ważna jest flaga -u, aby zmienić hasło później?
lucidbrot
8
dla Debiana / Ubuntu użyj libsecret stackoverflow.com/questions/36585496/…
rofrol
3
@lucidbrot przepraszam za spóźnioną odpowiedź. git pull -u nie działa z najnowszą wersją. Zaktualizowałem odpowiedź. Mam nadzieję, że odpowie na twoje pytanie.
Neetika,
51
Zauważ, że będzie to przechowywać twoją nazwę użytkownika i hasło w zwykłym pliku tekstowym na ~ / .git-credentials. Każdy może go otworzyć i przeczytać.
RoboAlex,
12
To nie działa Nie ciągnie się.
Urasquirrel,
348

Możesz użyć, git configaby włączyć przechowywanie poświadczeń w git.

git config --global credential.helper store

Podczas uruchamiania tego polecenia przy pierwszym pobieraniu lub wypychaniu ze zdalnego repozytorium zostaniesz zapytany o nazwę użytkownika i hasło.

Następnie, w celu dalszej komunikacji ze zdalnym repozytorium, nie musisz podawać nazwy użytkownika i hasła.

Format przechowywania to .git-credentialsplik przechowywany w postaci zwykłego tekstu.

Możesz także użyć innych pomocników do git config credential.helperpamięci podręcznej, a mianowicie:

git config credential.helper cache <timeout>

co trwa opcjonalnie timeout parameter, określając, jak długo poświadczenia będą przechowywane w pamięci. Za pomocą pomocnika poświadczenia nigdy nie dotkną dysku i zostaną usunięte po upływie określonego czasu. defaultWartość jest900 seconds (15 minutes).


OSTRZEŻENIE : Jeśli użyjesz tej metody, hasła do konta git zostaną zapisane w plaintextformacie global .gitconfig file, np. W systemie Linux będzie to/home/[username]/.gitconfig

Jeśli jest to dla Ciebie niepożądane, użyj ssh keyzamiast tego dla swojego konta.

Farhad Faghihi
źródło
3
Szkoda, że ​​nie pokazałeś pliku .gitconfig - pierwsze polecenie zostało zastąpione drugim :(
Adam
3
W git config credential.helper cacheprzypadku haseł nie zostaną zapisane w pliku, tylko przechowywane w pamięci. Zobacz: git-scm.com/docs/git-credential-cache
SA
1
Nie działa. Daje błąd: uwierzytelnianie nie powiodło się. Nawet nie prosi o hasło.
Philip Rego,
2
Podobnie jak dodatek - twój prywatny klucz ssh będzie również przechowywany w postaci zwykłego tekstu w miejscu dostępnym dla użytkownika, więc w zasadzie w obu przypadkach ta sama powierzchnia ataku.
Falco
jak mogę użyć tego do gitlab
anil
170

Zalecana i bezpieczna metoda: SSH

Utwórz klucz sith Github. Przejdź do github.com -> Ustawienia -> Klucze SSH i GPG -> Nowy klucz SSH. Teraz zapisz swój klucz prywatny na swoim komputerze.

Następnie, jeśli klucz prywatny zostanie zapisany jako id_rsa w katalogu ~ / .ssh / , dodajemy go do uwierzytelnienia jako taki:

ssh-add -K ~/.ssh/id_rsa


Bardziej bezpieczna metoda: buforowanie

Możemy użyć git-credential-store do buforowania naszej nazwy użytkownika i hasła przez pewien czas. Po prostu wprowadź następujące dane w interfejsie CLI (terminal lub wiersz poleceń):

git config --global credential.helper cache

Możesz również ustawić limit czasu (w sekundach) jako taki:

git config --global credential.helper 'cache --timeout=3600'


Jeszcze mniej bezpieczna metoda

Można także użyć Git-credential-store, ale zapisuje hasła w postaci zwykłego pliku tekstowego na dysku:

git config credential.helper store


Nieaktualna odpowiedź - Szybka i niepewna

Jest to niepewna metoda przechowywania hasła w postaci zwykłego tekstu. Jeśli ktoś przejmie kontrolę nad twoim komputerem, twoje hasło zostanie ujawnione!

Możesz ustawić swoją nazwę użytkownika i hasło w następujący sposób:

git config --global user.name "your username"

git config --global user.password "your password"
Andreas Bigger
źródło
15
To nie zadziałało, git clone wciąż prosi o nazwę użytkownika i hasło
Oliver
11
nie polecam przechowywać hasła w ten sposób, ponieważ „git config --global -l” ujawniłoby twoje hasło na konsoli
CCC
1
To mi nie działa. Dziwne, że powinno to działać dla każdego, ponieważ w specyfikacji gitconfig nie ma miejsca na „hasło”
Hamish Todd
.gitconfig to inny plik: .git-referencje znajdujące się w folderze domowym zawierają adres URL do repozytorium z twoją nazwą użytkownika i hasłem w adresie URL, podobnie jak git: // nazwa użytkownika: hasło @ serwer / git / repo Uważaj, ZOSTAŁO ZAPISANE HASŁO TEKSTOWE. Użyj „git config --global cache credential.helper”, jeśli nie możesz użyć kluczy ssh.
skabbit
Kiedy próbowałem ręcznie dodać użytkownika i hasło, plik konfiguracyjny zepsuł się i musiałem ponownie sklonować repozytorium. Nie próbuj tego ...
Letie Techera
102

Włącz pomocnika poświadczeń, aby Git zapisał twoje hasło na pewien czas:

W Terminalu wprowadź następujące dane:

# Set git to use the credential memory cache
git config --global credential.helper cache

Domyślnie Git będzie buforować twoje hasło przez 15 minut.

Aby zmienić domyślny limit czasu pamięci podręcznej haseł, wprowadź następujące dane:

# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'

Z pomocy GitHub

simhumileco
źródło
7
jesteś jedynym, który zasugerował globalną wersję, która jest WAŻNA, ponieważ zrujnowała mnie za każdym razem, gdy ponownie klonowałem repo
Xerus
4
Jak ustawić limit czasu na nieskończoność? Nigdy więcej nie chcę wprowadzać hasła.
Avamander,
8
@Avamander wystarczy wymienić cacheczęść na store. Tak, pełna komenda będzie: git config --global credential.helper store. Pamiętaj, że spowoduje to przechowywanie Twojego hasła w pliku tekstowym (bez szyfrowania, że ​​tak powiem).
Aleksandar,
2
@ Kasjer To nie działa z więcej niż jednym kontem, hasło nie jest pobierane ze sklepu na podstawie adresu e-mail tak, jak powinno, zamiast tego bierze się pierwsze z listy.
Avamander
2
@Avamander hm .. czy tak ma być, czy może to być błąd? Jaka jest maksymalna wartość --timeoutparametru?
Aleksandar
50

Możesz edytować ~/.gitconfigplik, aby zapisać swoje dane uwierzytelniające

sudo nano ~/.gitconfig

Które powinny już mieć

[user]
        email = [email protected]
        user = gitUSER

Powinieneś dodać na dole tego pliku.

[credential]
        helper = store

Powodem, dla którego zalecam tę opcję, jest to, że jest globalna i jeśli w dowolnym momencie musisz usunąć opcję, wiesz, gdzie się udać i ją zmienić.

WYKORZYSTUJ TĄ OPCJĘ TYLKO W KOMPUTERZE OSOBISTYM.

Potem kiedy pociągniesz | klon | wpisz hasło git, ogólnie hasło zostanie zapisane w ~/.git-credentialsformacie

https://GITUSER:[email protected]

GDZIE DOMAIN.XXX MOŻE BYĆ GITHUB.COM | BITBUCKET.ORG | INNY

Zobacz dokumenty

Uruchom ponownie terminal.

T04435
źródło
1
Nie zapomnij zrestartować okna git bash. Dopiero kiedy to zrobiłem, zadziałało to dla mnie.
sofs1
33

Wystarczy wpisać swoje dane uwierzytelniające w adresie URL w następujący sposób:

https://Username: Password@github.com/myRepoDir/myRepo.git

Możesz przechowywać go w następujący sposób:

git remote add myrepo https://Userna...

... przykład użycia :

git push myrepo master


Teraz jest lista aliasów adresów URL:

git remote -v

... i że polecenie usunięcia jednego z nich:

git remote rm myrepo

Nadu
źródło
8
Możesz także pozostawić swoje hasło poza adresem URL, aby Git poprosił o podanie hasła, ale nie nazwy użytkownika.
kangur
Korzystanie z SSH zamiast HTTP jest znacznie łatwiejsze i bezpieczniejsze. Możesz więc zachować hasło Git w tajemnicy i używać tylko klucza SSH. Informacje o SSH na Git: help.github.com/en/enterprise/2.16/user/… [email protected]:Username/myRepo.git
Loïch
Posiadanie hasła w adresie URL spowoduje zapisanie go w historii terminala, więc ten sposób nie jest zbyt bezpieczny.
Josh Correia
Zauważ, że Wiki można obecnie klonować https, ale nie ssh, więc takie rozwiązanie może być przydatne. Pamiętaj też, że możesz użyć tokena oauth, który jest nieznacznie bezpieczniejszy niż hasło do GitHub.
AstroFloyd
31

W celu ustawienia globalnego otwórz terminal (z dowolnego miejsca) uruchom następujące polecenie:

  git config --global user.name "your username"
  git config --global user.password "your password"

W ten sposób wszelkie lokalne repozytorium git, które masz na swoim komputerze, wykorzysta te informacje.

Możesz indywidualnie skonfigurować dla każdego repozytorium, wykonując:

  • otwórz terminal w folderze repo.
  • uruchom następujące:

    git config user.name "your username"
    git config user.password "your password"
    

Wpływa tylko na ten folder (ponieważ twoja konfiguracja jest lokalna).

Tuananhcwrs
źródło
8
Czy nie jest niebezpieczne posiadanie takich poświadczeń w prostym pliku konfiguracyjnym widocznym dla każdego?
bool3max
1
twoje pytanie powinno dotyczyć innego tematu. Tutaj omawiamy, jak skonfigurować nazwę i hasło dla git globalnie i lokalnie.
Tuananhcwrs
Dzięki za wejściowego znajomego
bool3max
11
Chciałbym tylko dodać, że pytanie o możliwe problemy bezpieczeństwa odpowiedzi ma swoje miejsce, ponieważ bezpośrednio wpływa na jej jakość i potencjalnie tysiące użytkowników implementujących ją.
Michael Kargl
2
nie działa dla mnie, dodano --localtag, ale znowu nic się nie dzieje
PayamBeirami
23

Możesz użyć git-credential-store do przechowywania haseł niezaszyfrowanych na dysku, chronionych tylko przez uprawnienia systemu plików.

Przykład

$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>

[several days later]
$ git push http://example.com/repo.git
[your credentials are used automatically]

Możesz sprawdzić poświadczenia zapisane w pliku ~/.git-credentials

Aby uzyskać więcej informacji, odwiedź git-credential-store - Pomocnik do przechowywania poświadczeń na dysku

David Navarro Astudillo
źródło
17

Będziesz bardziej bezpieczny, jeśli użyjesz uwierzytelniania SSH niż uwierzytelnianie nazwy użytkownika / hasła.

Jeśli używasz komputera Mac, uwierzytelnianie klienta SSH jest zintegrowane z pękiem kluczy systemu MacOS. Po utworzeniu klucza SSH wpisz w swoim terminalu:

ssh-add -K ~/.ssh/id_rsa

Spowoduje to dodanie prywatnego klucza SSH do pęku kluczy MacOS. Klient git użyje ssh podczas łączenia się ze zdalnym serwerem. Dopóki zarejestrujesz swój klucz publiczny ssh na serwerze, nic ci nie będzie.

Birol Efe
źródło
1
powinno być k nie K?
dez93_2000
1
FYI: Pracuję na komputerze Mac. Powiedziawszy to, z informacji „man”: „-k” Podczas ładowania lub usuwania kluczy z agenta, przetwarzaj tylko zwykłe klucze prywatne i pomiń certyfikaty. „-K” Podczas dodawania tożsamości każde hasło będzie również przechowywane w pęku kluczy użytkownika. Podczas usuwania tożsamości za pomocą -d każde hasło zostanie z niego usunięte.
Birol Efe
3
Nie sądzę, żeby to działało w przypadku repozytoriów opartych na https.
zakmck
5
Ta odpowiedź wydaje się mylić hasła (repozytorium HTTPS) z kluczami prywatnymi SSH.
Steve Bennett
2
Nie zgadzam się. Nie możesz być bardziej bezpieczny, dając dostęp do hosta SSH. Korzystając z uwierzytelniania HTTP, ktoś, kto ukradnie poświadczenia, będzie miał dostęp tylko do GitHub/GitLab. Również tokeny mają ograniczoną żywotność.
Dimitri Kopriwa
16

Po przejrzeniu kilkudziesięciu postów SO, blogów itp. Wypróbowałem każdą metodę i oto, co wymyśliłem. Obejmuje WSZYSTKO.

The Vanilla DevOps Git Credentials & Private Packages Cheatheet

Są to wszystkie sposoby i narzędzia, za pomocą których możesz bezpiecznie uwierzytelnić git, aby sklonować repozytorium bez interaktywnego monitu o hasło .

  • Klucze publiczne SSH
    • SSH_ASKPASS
  • Tokeny dostępu API
    • GIT_ASKPASS
    • .gitconfig zamiast
    • .gitconfig [dane logowania]
    • .git-credentials
    • .netrc
  • Pakiety prywatne (za darmo)
    • node / npm package.json
    • Python / pip / eggs wymagania.txt
    • rubinowe klejnoty Gemfile
    • Golang Go.mod

Srebrna Kula

Chcesz Just Works ™? To jest magiczna srebrna kula.

Zdobądź token dostępu (zobacz sekcję w cheatheet, jeśli potrzebujesz instrukcji Github lub Gitea) i ustaw go w zmiennej środowiskowej (zarówno dla lokalnego dewelopera, jak i wdrożenia):

MY_GIT_TOKEN=xxxxxxxxxxxxxxxx

W przypadku Github skopiuj i uruchom te wiersze dosłownie :

git config --global url."https://api:[email protected]/".insteadOf "https://github.com/"
git config --global url."https://ssh:[email protected]/".insteadOf "ssh://[email protected]/"
git config --global url."https://git:[email protected]/".insteadOf "[email protected]:"

Gratulacje, teraz żadne automatyczne klonowanie repozytoriów git nie będzie blokowane pytaniem o hasło, zarówno przy użyciu https, jak i dowolnego stylu ssh url.

Nie używasz Github?

W przypadku innych platform (Gitea, Github, Bitbucket) wystarczy zmienić adres URL. Nie zmieniaj nazw użytkowników (chociaż są one arbitralne, są potrzebne do odrębnych wpisów konfiguracji).

Zgodność

Działa to lokalnie w MacOS, Linux, Windows (w Bash), Docker, CircleCI, Heroku, Akkeris itp.

Więcej informacji

Zobacz sekcję „.gitconfig Zamiast tego” w ściągance.

Bezpieczeństwo

Zobacz sekcję „Bezpieczeństwo” ściągawki.

CoolAJ86
źródło
2
To ratownik. Dzięki.
annaoomph
2
Co miałem po to git config --global credential."https://somegithost.com".username MyUserName, co jest w twojej Cheatsheet, ale nie gdziekolwiek indziej w tym wątku odpowiedzi. To konkretne rozwiązanie nie odpowiada na pytanie PO, ale odpowiedziało na moje, więc dziękuję!
TheDudeAbides
1
To wspaniale !!! Najlepsza odpowiedź, wielkie dzięki.
Parsa
12

W takim przypadku potrzebujesz pomocnika git, aby powiedzieć gitowi, aby zapamiętał twoje hasło i nazwę użytkownika GitHub za pomocą następującego wiersza poleceń:

git config --global credential.helper wincred 

a jeśli używasz repozytorium przy użyciu klucza SSH, potrzebujesz klucza SSH do uwierzytelnienia.

Shaw
źródło
11

Żadna z powyższych odpowiedzi nie działała dla mnie. Ciągle otrzymuję następujący każdym razem chciałem fetchlub pull:

Enter passphrase for key '/Users/myusername/.ssh/id_rsa':


Dla komputerów Mac

Byłem w stanie powstrzymać to przed pytaniem o moje hasło:

  1. Otwórz konfigurację, uruchamiając: vi ~/.ssh/config
  2. Dodano następujące: UseKeychain yes
  3. Zapisano i wyjdź: naciśnij klawisz Esc , a następnie naciśnij klawisz Enter:wq!

Dla Windowsa

Udało mi się go uruchomić, korzystając z informacji z tej wymiany stosów: https://unix.stackexchange.com/a/12201/348665

Gene Parcellano
źródło
to dlatego, że używasz protokołu SSH (inne odpowiedzi używają HTTPS).
mariusm
6

Oprócz edycji ~/.gitconfigpliku możesz to zrobić, jeśli zapytasz:

git config --local --edit

lub

git config --global --edit

Uwaga: zawsze używaj pojedynczych cudzysłowów:

git config --local user.name 'your username'
git config --local user.password 'your password'

lub

git config --global user.name 'your username'
git config --global user.password 'your password'

Twoja nazwa użytkownika i hasło mogą zawierać niektóre znaki, które złamałyby hasło, jeśli użyjesz podwójnego cudzysłowu.

--locallub --globaloznacza, że ​​parametry konfiguracji są zapisywane dla projektu lub dla użytkownika systemu operacyjnego.

prosti
źródło
Sprawdź też ten jeden , który wyjaśnia jeszcze bardziej.
prosti
6

po prostu użyj

git config --global credential.helper store

i wykonaj polecenie git pull , poprosi o nazwę użytkownika i hasło, odtąd nie będzie wyświetlał monitu o nazwę użytkownika i hasło, będzie przechowywać szczegóły

Srikanth Josyula
źródło
4
Właśnie w zasadzie powtórzyłeś zaakceptowaną odpowiedź .
jsamol
4

Przechowuj nazwę użytkownika i hasło w .git-credentials

.git-credentialsto miejsce, w którym twoja nazwa użytkownika i hasło (token dostępu) są przechowywane podczas uruchamiania git config --global credential.helper store, co sugerują inne odpowiedzi, a następnie wpisz swoją nazwę użytkownika i hasło lub token dostępu:

https://${username_or_access_token}:${password_or_access_token}@github.com

Aby zapisać nazwę użytkownika i hasło (token dostępu):

git config —-global credential.helper store
echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials

Jest to bardzo przydatne dla robota github, np. W celu rozwiązania automatycznych kompilacji Chain w tym samym repozytorium dokerów , posiadając reguły dla różnych gałęzi, a następnie wyzwalając je, popychając je w post_pushhooker w hubie dokera.

Przykład tego można zobaczyć tutaj w Stackoverflow.

JiaHao Xu
źródło
Dzięki, jesteś wybawcą życia! Możemy również ustawić https: // $ {access_token}: $ {access_token} @ github.com
Lucas Mendes Mota Da Fonseca
1
@LucasMendesMotaDaFonseca token dostępu może służyć jako nazwa użytkownika?
JiaHao Xu
3

Szybki sposób na buforowanie referencji git:

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

miło i bezpiecznie

limit czasu jest w sekundach.

Amin Shojaei
źródło
2

Po przeczytaniu całego wątku i eksperymentowaniu z większością odpowiedzi na to pytanie, w końcu znalazłem procedurę, która działa dla mnie. Chcę się nim podzielić na wypadek, gdyby ktoś miał do czynienia ze złożonym przypadkiem użycia, ale nadal nie chcę przechodzić przez pełny wątek i strony podręcznika gitcredentials , gitcredentials-store itp., Tak jak ja.

Znajdź poniżej procedurę Sugeruję, JEŚLI (jak ja) masz do czynienia z kilkoma repozytoriami od kilku dostawców (GitLab, GitHub, Bitbucket itp.), Używając kilku różnych kombinacji nazwy użytkownika i hasła. Jeśli zamiast mieć tylko jedno konto do pracy, to może być lepiej zatrudniając git config --global credential.helper storelub git config --global user.name "your username"itd rozwiązań, które zostały bardzo dobrze wyjaśnione w poprzednich odpowiedziach.

Moje rozwiązanie:

  1. nieuzbrojony globalny pomocnik poświadczeń, na wypadek gdyby jakieś wcześniejsze eksperymenty przeszkadzały :)

> git config --global --unset credentials.helper

  1. przejdź do katalogu głównego repozytorium i wyłącz lokalnego pomocnika poświadczeń (w razie potrzeby)

> cd /path/to/my/repo

> git config --unset credential.helper

  1. utwórz plik do przechowywania poświadczeń repo

> git config credential.helper 'store --file ~/.git_repo_credentials'

Uwaga : to polecenie tworzy nowy plik o nazwie „.git_repo_credentials” w twoim katalogu domowym, w którym Git przechowuje twoje dane uwierzytelniające. Jeśli nie określisz nazwy pliku, Git użyje domyślnego „.git_credentials”. W takim przypadku wystarczy wydać następujące polecenie:

> git config credential.helper store

  1. ustaw swoją nazwę użytkownika

git config credential.*.username my_user_name

Uwaga : użycie „*” jest zwykle poprawne, jeśli Twoje repozytoria pochodzą od tego samego dostawcy (np. GitLab). Jeśli zamiast tego Twoje repozytoria są hostowane przez różnych dostawców, sugeruję jawne ustawienie linku do dostawcy dla każdego repozytorium, jak w poniższym przykładzie (dla GitLab):

git config credential.https://gitlab.com.username my_user_name

W tym momencie, jeśli git pullwydasz polecenie wymagające poświadczeń (np. ), Zostaniesz poproszony o hasło odpowiadające „moja_nazwa_użytkownika”. Jest to wymagane tylko raz, ponieważ git przechowuje dane uwierzytelniające na „.git_repo_credentials” i automatycznie używa tych samych danych przy kolejnych dostępach.

Sal Borrelli
źródło
2

Od komentarza rifrol na Linux Ubuntu, od tej odpowiedzi , oto jak w Ubuntu:

sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

Niektóre inne dystrybucje dostarczają plik binarny, więc nie musisz go budować.

W OS X zazwyczaj jest „zbudowany” z domyślnym modułem „osxkeychain”, więc dostajesz go za darmo.

rogerdpack
źródło
2

Sprawdź oficjalną dokumentację git:

Jeśli korzystasz z transportu SSH do łączenia się z pilotami, możesz mieć klucz bez hasła, który pozwala bezpiecznie przesyłać dane bez wpisywania nazwy użytkownika i hasła. Nie jest to jednak możliwe w przypadku protokołów HTTP - każde połączenie wymaga nazwy użytkownika i hasła. Jest to jeszcze trudniejsze w przypadku systemów z uwierzytelnianiem dwuskładnikowym, w których token używany do hasła jest generowany losowo i nie można go wymówić.

Na szczęście Git ma system poświadczeń, który może w tym pomóc. Git ma kilka opcji w pudełku:

  • Domyślnie w ogóle nie jest buforowana. Każde połączenie wyświetli monit o podanie nazwy użytkownika i hasła.

  • Tryb „pamięci podręcznej” utrzymuje poświadczenia w pamięci przez pewien okres czasu. Żadne z haseł nigdy nie jest przechowywane na dysku i są usuwane z pamięci podręcznej po 15 minutach.

  • Tryb „przechowywania” zapisuje poświadczenia w pliku tekstowym na dysku i nigdy nie wygasają. Oznacza to, że dopóki nie zmienisz hasła do hosta Git, nigdy więcej nie będziesz musiał wpisywać swoich danych logowania. Minusem tego podejścia jest to, że hasła są przechowywane jako zwykły tekst w zwykłym pliku w katalogu domowym.

  • Jeśli używasz komputera Mac, Git ma tryb „osxkeychain”, który buforuje poświadczenia w bezpiecznym pęku kluczy dołączonym do konta systemowego. Ta metoda przechowuje poświadczenia na dysku i nigdy nie wygasają, ale są one szyfrowane za pomocą tego samego systemu, który przechowuje certyfikaty HTTPS i autouzupełnianie Safari.

  • Jeśli używasz systemu Windows, możesz zainstalować pomocnika o nazwie „Git Credential Manager dla systemu Windows”. Jest to podobne do opisanego powyżej pomocnika „osxkeychain”, ale używa Sklepu poświadczeń systemu Windows do kontrolowania poufnych informacji. Można go znaleźć na https://github.com/Microsoft/Git-Credential-Manager-for-Windows .

Możesz wybrać jedną z tych metod, ustawiając wartość konfiguracji Git:

$ git config --global credential.helper cache

$ git config --global credential.helper store

https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage

Sma Ma
źródło