Setelah mempelajari puluhan posting SO, blog, dll, saya mencoba setiap metode, dan inilah yang saya hasilkan. Ini mencakup semuanya.
Ini semua cara dan alat yang dengannya Anda dapat mengotentikasi git dengan aman untuk mengkloning repositori tanpa prompt kata sandi interaktif .
- Kunci Publik SSH
- Token Akses API
- GIT_ASKPASS
- .gitconfig sebagai gantinya
- .gitconfig [kredensial]
- .git-kredensial
- .netrc
- Bonus: Bekerja dengan Paket Pribadi
- node / npm package.json
- persyaratan python / pip / telur
- permata ruby Gemfile
- golang go.mod
Opsi terbaik tanpa penyimpanan plaintext
Dari apa yang ditanyakan di sini, SSH Keys GIT_ASKPASS
,, atau git credential store
menggunakan manajer Keychain OS mungkin merupakan pilihan terbaik.
Karena GIT_ASKPASS mungkin adalah yang paling sedikit dipahami dari 3, saya akan menjelaskannya di sini - dan yang lainnya ada di lembar contekan.
GIT_ASKPASS
Cara membuat GIT_ASKPASS
skrip:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Bagaimana cara menggunakannya:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
Script menerima stdin dalam bentuk:
Password for 'scheme://host.tld':
Script menerima Git ENVs seperti:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Lebih detail di lembar contekan .
git remote set-url origin https://host.com/name/.git