Nachdem ich Dutzende von SO-Posts, Blogs usw. durchgesehen hatte, habe ich jede Methode ausprobiert . Es deckt ALLES ab.
Dies sind alle Möglichkeiten und Tools, mit denen Sie git sicher authentifizieren können, um ein Repository ohne eine interaktive Kennwortabfrage zu klonen .
- Öffentliche SSH-Schlüssel
- API-Zugriffstoken
- GIT_ASKPASS
- .gitconfig statt
- .gitconfig [Berechtigungsnachweis]
- .git-Anmeldeinformationen
- .netrc
- Bonus: Funktioniert mit privaten Paketen
- node / npm package.json
- python / pip / eggs requirements.txt
- Rubin Edelsteine Gemfile
- golang go.mod
Beste Optionen für keinen Klartextspeicher
Von den hier gestellten Fragen sind entweder SSH-Schlüssel GIT_ASKPASS
oder die git credential store
Verwendung des Betriebssystem-Schlüsselbund-Managers die beste Wahl.
Da GIT_ASKPASS von den 3 wahrscheinlich am wenigsten verstanden wird, werde ich das hier detailliert beschreiben - und die anderen sind im Spickzettel.
GIT_ASKPASS
So erstellen Sie ein GIT_ASKPASS
Skript:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Wie man es benutzt:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
Das Skript erhält stdin in Form von:
Password for 'scheme://host.tld':
Das Skript empfängt Git-ENVs wie:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Weitere Details im Cheatsheet .
git remote set-url origin https://host.com/name/.git