Ik wil automatisch pushen en pullen in GitExtension, SourceTreeof een andere Git-GUI zonder telkens mijn gebruiker en wachtwoord in een prompt in te voeren.
Dus hoe kan ik mijn inloggegevens opslaan in git?
Antwoord 1, autoriteit 100%
Attentie: deze methode slaat de inloggegevens op in platte tekstop de schijf van uw pc. Iedereen op uw computer heeft er toegang toe, b.v. kwaadaardige NPM-modules.
Rennen
git config --global credential.helper store
dan
git pull
geef een gebruikersnaam en wachtwoord op en deze gegevens worden later onthouden. De inloggegevens worden opgeslagen in een bestand op de schijf, met de schijfrechten van “alleen door de gebruiker leesbaar/schrijfbaar” maar nog steeds in platte tekst.
Als u het wachtwoord later wilt wijzigen
git pull
Zal mislukken, omdat het wachtwoord onjuist is, git verwijdert dan de overtredende gebruiker+wachtwoord uit het bestand ~/.git-credentials
, dus voer het nu opnieuw uit
git pull
om een nieuw wachtwoord op te geven zodat het werkt zoals eerder.
Antwoord 2, autoriteit 15%
Je kunt de git config
gebruiken om inloggegevens in git in te schakelen.
git config --global credential.helper store
Als u deze opdracht uitvoert, wordt u de eerste keer dat u uit de externe repository trekt of pusht, gevraagd naar de gebruikersnaam en het wachtwoord.
Daarna hoeft u voor consequente communicatie met de externe repository de gebruikersnaam en het wachtwoord niet op te geven.
Het opslagformaat is een .git-credentials
bestand, opgeslagen in platte tekst.
Je kunt ook andere helpers gebruiken voor de git config credential.helper
, namelijk geheugencache:
git config credential.helper 'cache --timeout=<timeout>'
waarvoor een optionele timeout parameter
nodig is,
bepalen hoe lang de inloggegevens in het geheugen worden bewaard. Met behulp van de helper zullen de inloggegevens de schijf nooit raken en worden ze gewist na de opgegeven time-out. De default
waarde is 900 seconds (15 minutes).
WAARSCHUWING: als je deze methode gebruikt, worden de wachtwoorden van je git-account opgeslagen in de indeling plaintext
, in het global .gitconfig file
, bijv. in linux is het /home/[username]/.gitconfig
Als dit ongewenst voor je is, gebruik dan in plaats daarvan een ssh key
voor je accounts.
Antwoord 3, autoriteit 10%
Aanbevolen en veilige methode: SSH
Maak een ssh Github-sleutel. Ga naar github.com-> Instellingen -> SSH- en GPG-sleutels -> Nieuwe SSH-sleutel. Sla nu uw privésleutel op uw computer op.
Als de privésleutel wordt opgeslagen als id_rsain de map ~/.ssh/, voegen we deze als zodanig toe voor authenticatie:
ssh-add -K ~/.ssh/id_rsa
Een veiligere methode: caching
We kunnen git-credential-store gebruiken om onze gebruikersnaam en wachtwoord voor een bepaalde tijd in de cache op te slaan. Typ eenvoudig het volgende in uw CLI (terminal of opdrachtprompt):
git config --global credential.helper cache
U kunt de time-outperiode (in seconden) ook als volgt instellen:
git config --global credential.helper 'cache --timeout=3600'
Een nog minder veilige methode
Git-credential-store kan ook worden gebruikt, maar bewaart wachtwoorden in platte tekst op uw schijf als zodanig:
git config credential.helper store
verouderde antwoord – Snel en onveilig
Dit is een onveilig -methode om uw wachtwoord in duidelijke tekst op te slaan. Als iemand de controle over uw computer wint, wordt uw wachtwoord blootgelegd!
U kunt uw gebruikersnaam en wachtwoord als volgt instellen:
git config --global user.name "your username"
git config --global user.password "your password"
Antwoord 4, Autoriteit 4%
Schakel de referentiehelper in zodat Git uw wachtwoord in het geheugen gedurende enige tijd opslaat:
Voer het volgende in:
# Set git to use the credential memory cache
git config --global credential.helper cache
Standaard zal Git uw wachtwoord gedurende 15 minuten cachen.
Voer het volgende in om de standaard wachtwoordcache-time-out te wijzigen:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
van GitHub Help
Antwoord 5, Autoriteit 2%
U kunt de ~/.gitconfig
bestand bewerken naar opslaan uw referenties
sudo nano ~/.gitconfig
die al
[user]
email = [email protected]
user = gitUSER
U moet onderaan dit bestand toevoegen.
[credential]
helper = store
De reden waarom ik deze optie aanbeveel, is Oorzaak Het is wereldwijd en als u op een gegeven moment de optie moet verwijderen die u weet waar te gaan en het wijzigen.
Gebruik deze optie alleen in uw personal computer.
Als je dan aan | . trekt kloon| voer je git-wachtwoord in, in het algemeen wordt het wachtwoord opgeslagen in ~/.git-credentials
in het formaat
https://GITUSER:[email protected]
WAAR DOMEIN.XXX GITHUB.COM KAN ZIJN | BITBUCKET.ORG | ANDERE
Bekijk Documenten
Start uw terminal opnieuw.
Antwoord 6, autoriteit 2%
Plaats uw inloggegevens als volgt in de URL:
https://Username
:Password
@github.com/myRepoDir/myRepo.git
Je kunt het als volgt opslaan:
git remote add myrepo https://Userna...
…voorbeeld om het te gebruiken:
git push myrepo master
Dat is nu om de url-aliassen Lijst:
git remote -v
…en dat het commando om er een te verwijderen:
git remote rm myrepo
Antwoord 7
Ik denk dat het veiliger is om inloggegevens te cachen, in plaats van voor altijd op te slaan:
git config --global credential.helper 'cache --timeout=10800'
nu kun je je gebruikersnaam en wachtwoord invoeren (git pull
of …), en git de komende 3 uur blijven gebruiken.
leuk en veilig.
Time-out is in seconden (3 uur in het voorbeeld).
Antwoord 8
Voor algemene instellingen opent u de terminal (van waar dan ook)
voer het volgende uit:
git config --global user.name "your username"
git config --global user.password "your password"
Daardoor zal elke lokale git repo die je op je computer hebt die informatie gebruiken.
U kunt voor elke repo afzonderlijk configureren door het volgende te doen:
- open terminal in de repo-map.
-
voer het volgende uit:
git config user.name "your username" git config user.password "your password"
Het heeft alleen invloed op die map (omdat uw configuratie lokaal is).
Antwoord 9
Na het doornemen van tientallenSO-berichten, blogs, enz., heb ik elkemethode uitgeprobeerd, en dit is wat ik bedacht. Het dekt ALLES.
De Vanilla DevOps Git-referenties & Cheatsheet voor privépakketten
Dit zijn alle manieren en tools waarmee je git veilig kunt authenticeren om een repository te klonen zonder een interactieve wachtwoordprompt.
- SSH openbare sleutels
- SSH_ASKPASS
- API-toegangstokens
- GIT_ASKPASS
- .gitconfig plaats van
- .gitconfig [referentie]
- .git-credentials
- .netrc
- Privépakketten (gratis)
- knooppunt / npm-pakket.json
- python / pip / eggs requirements.txt
- robijn edelstenen Gemfile
- golang go.mod
De Zilveren Kogel
Wil je Just Works™? Dit is de magische zilveren kogel.
Verkrijg je toegangstoken (zie de sectie in de cheatsheet als je de Github- of Gitea-instructies daarvoor nodig hebt) en stel deze in een omgevingsvariabele in (zowel voor lokale ontwikkeling als implementatie):
MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
Voor Github, kopieer en voer deze regels woordelijkuit:
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]:"
Gefeliciteerd, nu worden git-repository’s voor het automatisch klonen van tools niet belemmerd door een wachtwoordprompt, of het nu gaat om https of een van beide stijlen van ssh-url.
Gebruik je Github niet?
Voor andere platforms (Gitea, Github, Bitbucket) hoeft u alleen de URL te wijzigen. Wijzig de gebruikersnamen niet (hoewel ze willekeurig zijn, zijn ze nodig voor verschillende configuratie-items).
Compatibiliteit
Dit werkt lokaal in MacOS, Linux, Windows (in Bash), Docker, CircleCI, Heroku, Akkeris, etc.
Meer informatie
Zie de “.gitconfig plaats van” sectie van de cheatsheet.
Beveiliging
Zie het gedeelte ‘Beveiliging’ van de cheatsheet.
Antwoord 10
Je kunt git-credential-store gebruiken om je wachtwoorden onversleuteld op de schijf op te slaan, alleen beschermd door de machtigingen van het bestandssysteem.
Voorbeeld
$ 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]
U kunt de inloggegevens controleren die zijn opgeslagen in het bestand ~/.git-credentials
Ga voor meer informatie naar
git-credential-store – Helper om inloggegevens op schijf op te slaan
Antwoord 11
U bent veiliger als u SSH-verificatie gebruikt dan gebruikersnaam-/wachtwoordverificatie.
Als je een Mac gebruikt, is SSH-clientverificatie geïntegreerd in de MacOS-sleutelhanger. Nadat u een SSH-sleutel hebt gemaakt, typt u in uw terminal:
ssh-add -K ~/.ssh/id_rsa
Hiermee wordt de SSH-privésleutel aan de MacOS-sleutelhanger toegevoegd. De git-client gebruikt ssh wanneer deze verbinding maakt met de externe server. Zolang je je openbare ssh-sleutel bij de server hebt geregistreerd, komt het goed.
Antwoord 12
In dat geval heb je git-referentiehelper nodig om git te vertellen je GitHub-wachtwoord en gebruikersnaam te onthouden door de volgende opdrachtregel te gebruiken:
git config --global credential.helper wincred
en als je repo gebruikt met een SSH-sleutel, dan heb je een SSH-sleutel nodig om te authenticeren.
Antwoord 13
Geen van de bovenstaande antwoorden werkte voor mij. Ik kreeg steeds het volgende elke keer dat ik wilde fetch
of pull
:
Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Voor Macs
Ik heb kunnen voorkomen dat mijn wachtwoordzin werd gevraagd door:
- Open config door uit te voeren:
vi ~/.ssh/config
- Het volgende toegevoegd:
UseKeychain yes
- Opgeslagen en afgesloten: druk op Escen voer vervolgens
:wq!
in
Voor Windows
Ik heb het werkend kunnen krijgen met behulp van de informatie in deze stackexchange:
https://unix.stackexchange.com/a/12201/348665
Antwoord 14
Afgezien van het bewerken van het bestand ~/.gitconfig
, kunt u dit doen als u daarom vraagt:
git config --local --edit
of
git config --global --edit
Opmerking om altijd enkeleaanhalingstekens te gebruiken:
git config --local user.name 'your username'
git config --local user.password 'your password'
of
git config --global user.name 'your username'
git config --global user.password 'your password'
Uw gebruikersnaam en wachtwoord kunnen enkele tekens bevatten die uw wachtwoord zouden breken als u dubbele aanhalingstekens gebruikt.
--local
of --global
betekent dat configuratieparameters worden opgeslagen voor het project of voor de os-gebruiker.
Antwoord 15
gebruik gewoon
git config --global credential.helper store
en doe de git pull, het zal om gebruikersnaam en wachtwoord vragen, vanaf nu zal het geen prompt meer geven voor gebruikersnaam en wachtwoord, het zal de details opslaan
Antwoord 16
Bewaar gebruikersnaam en wachtwoord in .git-credentials
.git-credentials
is waar je gebruikersnaam en wachtwoord (toegangstoken) worden opgeslagen wanneer je git config --global credential.helper store
uitvoert, en dat is wat andere antwoorden voorstellen, en typ vervolgens uw gebruikersnaam en wachtwoord of toegangstoken:
https://${username_or_access_token}:${password_or_access_token}@github.com
Dus, om de gebruikersnaam en het wachtwoord (toegangstoken) op te slaan:
git config —-global credential.helper store
echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials
Dit is erg handig voor github-robots, b.v. om Geautomatiseerde ketenbuilds in dezelfde docker-repository op te lossendoor regels voor verschillende branches te hebben en deze vervolgens te activeren door ernaar te pushen in de post_push
hooker in de docker-hub.
Een voorbeeld hiervan is hierin stackoverflow te zien.
Antwoord 17
Controleer de officiële git-documentatie:
Als je het SSH-transport gebruikt om verbinding te maken met afstandsbedieningen, is dat mogelijk
zodat u een sleutel zonder wachtwoordzin hebt, waarmee u:
veilig gegevens overdragen zonder uw gebruikersnaam en wachtwoord in te voeren.
Dit is echter niet mogelijk met de HTTP-protocollen – elke
verbinding heeft een gebruikersnaam en wachtwoord nodig. Dit wordt nog moeilijker voor
systemen met tweefactorauthenticatie, waarbij het token dat u gebruikt voor een
wachtwoord wordt willekeurig gegenereerd en onuitspreekbaar.Gelukkig heeft Git een referentiesysteem dat hierbij kan helpen. Git
heeft een paar opties in de doos:
De standaardinstelling is om helemaal niet te cachen. Elke verbinding zal u vragen
voor uw gebruikersnaam en wachtwoord.De “cache”-modus houdt de inloggegevens gedurende een bepaalde periode van
tijd. Geen van de wachtwoorden wordt ooit op schijf opgeslagen en dat zijn ze ook:
verwijderd uit de cache na 15 minuten.De “store”-modus slaat de inloggegevens op in een tekstbestand op schijf,
en ze verlopen nooit. Dit betekent dat totdat u uw wachtwoord wijzigt
voor de Git-host hoef je nooit je inloggegevens in te voeren
opnieuw. Het nadeel van deze aanpak is dat je wachtwoorden worden opgeslagen
in leesbare tekst in een gewoon bestand in uw thuismap.Als je een Mac gebruikt, wordt Git geleverd met een “osxkeychain”-modus, die
slaat inloggegevens op in de beveiligde sleutelhanger die aan uw
systeem account. Deze methode slaat de inloggegevens op schijf op en ze
verlopen nooit, maar ze zijn versleuteld met hetzelfde systeem dat opslaat
HTTPS-certificaten en Safari automatisch ingevuld.Als je Windows gebruikt, kun je een helper installeren met de naam “Git
Credential Manager voor Windows.” Dit is vergelijkbaar met de “osxkeychain”
hierboven beschreven helper, maar gebruikt de Windows Credential Store om
gevoelige informatie beheren. Het is te vinden op
https://github.com/Microsoft/Git-Credential-Manager-for-Windows .Je kunt een van deze methoden kiezen door een Git-configuratie in te stellen
waarde:
$ git config --global credential.helper cache
$ git config --global credential.helper store
https://git-scm.com/book/ nl/v2/Git-Tools-Credential-Storage
Antwoord 18
Als je de Git Credential Manager op Windowsgebruikt…
git config -l
zou moeten tonen:
credential.helper=manager
Als u echter niet om een referentie wordt gevraagd, volgt u deze stappen:
- Open Configuratieschermvanuit het menu Start
- Selecteer Gebruikersaccounts
- Selecteer Uw inloggegevens beherenin het linkermenu
- Verwijder alle inloggegevens met betrekking tot Git of GitHub
Zorg er ook voor dat u geenomgevingsvariabelen HTTP_PROXY
, HTTPS_PROXY
, NO_PROXY
hebt ingesteld als u proxy en uw Git-server bevindt zich op het interne netwerk.
Je kunt Git fetch/push/pull ook testen met behulp van git-gui
die linkt naar binaire bestanden voor referentiebeheer in C:\Users\<username>\AppData\Local\Programs\Git\mingw64\libexec\git-core
Antwoord 19
Na het lezen van de draad volledig en experimenteert met de meeste antwoorden op deze vraag, vond ik uiteindelijk de procedure die voor mij werkt. Ik wil het delen in het geval iemand te maken heeft met een complexe gebruikscase, maar nog steeds niet door de volledige draad en de Gitcredentials , gitcredentials-winkel etc. Man pagina’s, zoals ik deed.
VIND ONDER DE PROCEDURE I Suggereer Indien You (zoals ik) te maken hebben met verschillende repositories uit verschillende aanbieders (Gitlab, Github, Bitbucket, enz.) Met behulp van verschillende verschillende gebruikersnaam / wachtwoordcombinaties. Als u in plaats daarvan slechts één account hebt om mee samen te werken, dan is u misschien beter bij het gebruik van de git config --global credential.helper store
of git config --global user.name "your username"
etc. Oplossingen die zeer goed zijn uitgelegd in eerdere antwoorden.
Mijn oplossing:
- Unset Global Credentials Helper, in het geval dat een voormalige experimentatie in de weg staat 🙂
> git config --global --unset credentials.helper
- Ga naar de hoofdmap van uw repo en schakel de lokale referentielulper (indien nodig)
uit
> cd /path/to/my/repo
> git config --unset credential.helper
- Maak een bestand om de inloggegevens van uw REPO op te slaan in
> git config credential.helper 'store --file ~/.git_repo_credentials'
Opmerking: dit commando maakt een nieuw bestand aan met de naam “.git_repo_credentials” in je homedirectory, waarin Git je inloggegevens opslaat. Als je geen bestandsnaam opgeeft, gebruikt Git de standaard “.git_credentials”. In dit geval volstaat het geven van de volgende opdracht:
> git config credential.helper store
- stel je gebruikersnaam in
git config credential.*.username my_user_name
Opmerking: het gebruik van “*” is meestal ok als uw repositories van dezelfde provider zijn (bijv. GitLab). Als uw repositories in plaats daarvan door verschillende providers worden gehost, raad ik aan om de link naar de provider expliciet in te stellen voor elke repository, zoals in het volgende voorbeeld (voor GitLab):
git config credential.https://gitlab.com.username my_user_name
Als je op dit moment een commando geeft dat je inloggegevens vereist (bijv. git pull
), wordt je gevraagd om het wachtwoord dat overeenkomt met “my_user_name”. Dit is maar één keer nodig omdat git de inloggegevens opslaat in “.git_repo_credentials” en automatisch dezelfde gegevens gebruikt bij volgende toegangen.
Antwoord 20
Uit de opmerking van rifrol, op Linux Ubuntu, uit dit antwoord, hier is hoe in 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
Sommige andere distro’s leveren het binaire bestand, zodat je het niet hoeft te bouwen.
In OS X wordt het meestal “gebouwd” geleverd met een standaardmodule van “osxkeychain”, zodat u het gratis krijgt.
Antwoord 21
Voor Windows-gebruikers kijkt u naar het .gitconfig-bestand en controleert u wat er is geconfigureerd voor de referentiehulp als u het volgende heeft…
[referentie “helperselector”]
geselecteerd = gewonnen
u vindt de inloggegevens in Windows Credential Manager.
Daar kunt u de inloggegevens bewerken.
EDIT: Wincred is verouderd, zie…
https ://github.com/git-for-windows/git-sdk-64/tree/main/mingw64/doc/git-credential-manager
Dus als alternatief zou je git opnieuw kunnen configureren om de ingebouwde GIT-referentiemanager te gebruiken…
git config --global credential.helper manager
Antwoord 22
gebruikersnaam en wachtwoord globaal opslaan
git config --global user.name "fname lname"
git config --global user.email "[email protected]"
git config --global user.password "secret"
Specifieke instelling ophalen,
git config --global --get user.name
git config --global --get user.email
git config --global --get user.password
Alle git-instellingen ophalen
git config --list --show-origin
Antwoord 23
Voor Windows-gebruikers werkt deze manier
Opmerking: als je Twee-factor-authenticatie voor GitHub hebt ingeschakeld, schakel deze dan een tijdje uit
- Stap 01
Goto Control Panel -> User Accounts -> Credential Manager -> Windows Credentials
- Stap 02
Goto Generic Credentials section -> Add a generic credential
- Stap 03 – Vul de velden in
Internet or network address : git.https://github.com
User name : your github username
Password : your github username
En klik nu op Ok. Hiermee worden het wachtwoord en de gebruikersnaam van uw GitHub-account op uw lokale computer opgeslagen
Antwoord 24
git config –global user.name “uw gebruikersnaam”
git config –global user.password “uw wachtwoord”
vink
git config –list