Vreau să folosesc o împinge și trage în mod automat în GitExtension, fără a introduce meu de utilizator și parola într-un prompt, de fiecare dată.
Deci, cum pot salva acreditările în GIT?
Rula
git config --global credential.helper store
apoi
git pull
furnizați un nume de utilizator și o parolă și detaliile respective va fi amintit mai târziu. Acreditările sunt stocate într-un fișier pe disc, cu permisiunile de disc de "doar utilizator poate fi citit sau scris" dar încă în text clar.
Dacă doriți să modificați parola mai târziu
git pull
Nu va reuși, pentru că parola este incorectă, git apoi indeparteaza ofensatoare utilizator+parola de la ~/.git-acreditările
fișier, astfel încât acum re-rula
git pull
pentru a oferi o nouă parolă, astfel încât acesta funcționează la fel ca mai devreme.
Puteți utiliza git config
pentru a permite acreditările de stocare în git.
git config --global credential.helper store
Atunci când rulează această comandă, prima dată când o trageți sau împingeți din depozitul de la distanță, ai'll întrebat despre numele de utilizator și parola.
După aceea, de consecință, comunicarea cu depozitul de la distanță nu't trebuie să furnizeze numele de utilizator și parola.
Formatul de stocare este de-o .git-acreditările
fișier, stocate în text clar.
De asemenea, puteți utiliza alte ajutoare pentru git config acreditare.helper
, și anume de memorie cache:
git config credential.helper cache <timeout>
care are un opțional parametrul timeout
,
pentru determinarea cât timp acreditările vor fi păstrate în memorie. Folosind helper, acreditările nu se va mai atinge de disc și vor fi șterse după timeout specificat. Default
valoare este de 900 de secunde (15 minute).`
AVERTISMENT : Dacă utilizați această metodă, git parole de cont va fi salvat în text
format, în anii global .gitconfig fișier
, e.g în linux va fi /home/[nume de utilizator]/.gitconfig
Dacă acest lucru nu este de dorit pentru tine, utilizați o cheie ssh pentru conturile dumneavoastră în loc.
În Terminal, introduceți următoarele:
# Set git to use the credential memory cache
git config --global credential.helper cache
În mod implicit, Git va cache parola pentru 15 minute.
Pentru a schimba parola implicită cache timeout, introduceți următoarele:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
De GitHub Ajuta
Puteți edita ~/.gitconfig
fișierul a magazin ta de acreditare
sudo nano ~/.gitconfig
Care ar trebui să aibă deja
[user]
email = [email protected]
user = gitUSER
Tu ar trebui să adăugați în partea de jos a acestui fișier.
[credential]
helper = store
Motivul pentru care am recomanda această opțiune este că aceasta este globală și dacă în orice moment aveți nevoie pentru a elimina opțiunea stii unde sa mergi si schimba-l.
UTILIZAȚI ACEASTĂ OPȚIUNE NUMAI ÎN COMPUTERUL PERSONAL.
Atunci când trageți | clona| intra git parola, în general, parola va fi salvat în~/.git-acreditările în format
https://GITUSER:[email protected]
ÎN CAZUL ÎN DOMENIU.XXX AR PUTEA FI GITHUB.COM | BITBUCKET.ORG | ALTE
A se vedea Documente
Pentru setare la nivel mondial, deschide terminalul (de la orice în cazul în care) executați următoarea:
git config --global user.name "your username"
git config --global user.password "your password"
De aceea, orice local git repo pe care le ai pe masina va folosi aceste informații.
Puteți individual de configurare pentru fiecare repo de a face:
git config utilizator.numele "numele tău de utilizator" git config utilizator.parola "parola"
Aceasta afectează doar acel folder (pentru configuratia ta este local).
Pune doar acreditările în Url-ul astfel:
https://Username
: "Parola" @github.com/myRepoDir/myRepo.git
Poate magazin astfel:
git remote adauga myrepo https://Userna...
...exemplu la utilizare ea:
`git push myrepo master
Acum, că este la Liste url-ul pseudonime:
git remote -v
...și comanda pentru a sterge unul din ele:
git remote rm myrepo
Puteți folosi git-acreditare-magazin pentru a stoca parolele necriptate de pe disc, protejate doar de permisiunile fișierului de sistem.
Exemplu
$ 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]
Puteți verifica acreditările stocate în fișierul~/.git-acreditările`
Pentru mai multe informatii vizitati git-acreditare-magazin - Helper pentru a stoca datele de pe disc
Vă va fi mult mai sigur dacă utilizați autentificare SSH decât numele de utilizator/parola de autentificare.
Dacă utilizați un Mac, SSH client autentificare este integrat în MacOS breloc. După ce ați creat o cheie SSH, tastați în terminal:
ssh-add -K ~/.ssh/id_rsa
Aceasta va adăuga cheia privată SSH la MacOS breloc. Git clientul va folosi ssh atunci când se conectează la server de la distanță. Atâta timp cât v-ați înregistrat ssh cu chei publice cu serverul, va fi bine.
În acest caz ai nevoie de git acreditare helper pentru a spune git să-ți amintești GitHub parola și numele de utilizator folosind următoarea linie de comandă :
git config --global credential.helper wincred
și dacă utilizați repo folosind o cheie SSH atunci ai nevoie de o cheie SSH pentru a autentifica.
Nici unul din raspunsurile de mai sus a lucrat pentru mine. Am păstrat obtinerea următoarele de fiecare dată când am vrut să "aport" sau "pull":
Introduceți fraza de acces pentru cheie '/Users/myusername/.ssh/id_rsa':
Pentru Mac-Uri
Am fost în stare să-l oprească de la a cere mea fraza de acces:
vi ~/.ssh/config
UseKeychain da
:wq!
Pentru Windows
Am fost capabil de a ajunge la locul de muncă folosind informații în acest stackexchange: https://unix.stackexchange.com/a/12201/348665
După ce a trecut peste zeci de ASTFEL de posturi, blog-uri, etc, am încercat fiecare ** metodă, și acest lucru este ceea ce am venit cu. Acesta acoperă TOTUL.
Acestea sunt toate modalități și instrumente prin care puteți autentifica în siguranță git pentru a clona un depozit fără interactive prompt de parolă.
Vreau Doar Lucrări™? Aceasta este magia glonț de argint.
Obține Token-ul de Acces (a se vedea secțiunea în cheatsheet dacă ai nevoie de Github sau Gitea instrucțiuni pentru asta) și setați-l într-o variabilă de mediu (atât locale dev și implementare):
bash MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
Pentru Github, copia și rula aceste linii verbatim:
bash git config --global url."https://api:[email protected]/".in loc "https://github.com/" git config --global url."https://ssh:[email protected]/".in loc "ssh://[email protected]/" git config --global url."https://git:[email protected]/".in loc "[email protected]:"
Felicitări, acum orice instrument automat de clonare arhive git câștigat't fi blocată de un prompt de parolă, dacă utilizați https sau nici stilul de ssh url-ul.
Nu folosesc Github?
Pentru alte platforme (Gitea, Github, Bitbucket), doar schimba URL-ul. Don't de a schimba numele de utilizator (deși arbitrare, ei're necesare pentru distinctă de configurare intrări).
****Compatibilitate
Aceasta funcționează la nivel local în MacOS, Linux, Windows (în Bash), Docker, CircleCI, Heroku, Akkeris, etc.
Mai Multe Informatii
Vezi ".gitconfig loc" secțiune a cheatsheet.
Securitate
Vezi "Securitate" secțiune a cheatsheet.
În afară de editarea ~/.gitconfig
de fișiere, pe care le puteți face dacă vă întrebați:
git config --local --edit
sau
git config --global --edit
git config --local user.name 'your username'
git config --local user.password 'your password'
sau
git config --global user.name 'your username'
git config --global user.password 'your password'
Numele dvs. de utilizator și parola pot folosi unele caractere care s-ar sparge parola dacă utilizați ghilimele duble.
`--local " sau "globală" înseamnă " configurare params sunt salvate pentru proiect sau pentru utilizator sistem de operare.
Din comentariul de rifrol, pe Linux Ubuntu, din acest răspunde:
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
Alte distro's furnizeze binar, astfel încât să don't trebuie să-l construiască.
În OS X este de obicei, vine "construit" cu un modul implicit de "osxkeychain" astfel încât să-l pentru gratuit.
.git-acreditările
este în cazul în care numele de utilizator și parola sunt stocate atunci când a alerga `git config --global de acreditare.helper magazin, care este ceea ce alte răspunsuri sugerează, și apoi tastați în numele dvs. de utilizator și parola:
https://${username}:${password_or_access_token}@github.com
Deci, în scopul de a salva numele de utilizator și parola:
git config --global de acreditare.helper magazin echo "https://${username}:${password_or_access_token}@github.com" > ~/.git-acreditare
Acest lucru este foarte util pentru github robot, de exemplu, pentru a rezolva Lanț automat construiește în același docker repository de a avea reguli pentru diferite ramură și apoi declanșa prin împingerea în post_push
prostituată în docker hub.
Un exemplu în acest sens poate fi văzut aici în stackoverflow.
doar folosi
git config --global credential.helper store
și de a face git pull, se va cere numele de utilizator și parola, de acum încolo, nu va oferi nici o solicitare pentru numele de utilizator și parola se va stoca detalii