Переглянувши десятки публікацій SO, блогів тощо, я спробував кожен метод, і ось що я придумав. Він охоплює ВСЕ.
Це всі способи та інструменти, за допомогою яких ви можете надійно засвідчити git для клонування сховища без інтерактивного запиту пароля .
- Загальнодоступні ключі SSH
- Токени доступу до API
- GIT_ASKPASS
- .gitconfig замістьOf
- .gitconfig [обліковий запис]
- .git-облікові дані
- .netrc
- Бонус: працює з приватними пакетами
- node / npm package.json
- вимоги python / pip / яйця.txt
- рубінові дорогоцінні камені
- голанг go.mod
Найкращі варіанти для зберігання в простому тексті
З того, що тут задають питання, найкращим вибором може бути або SSH-ключі, GIT_ASKPASS
або git credential store
використання диспетчера брелоків ОС.
Оскільки GIT_ASKPASS, мабуть, найменш зрозумілий з 3-х, я детально розповім, що тут - а інші - в шпаргалці.
GIT_ASKPASS
Як створити GIT_ASKPASS
сценарій:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Як ним користуватися:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
Сценарій отримує stdin у вигляді:
Password for 'scheme://host.tld':
Сценарій отримує Git ENV, такі як:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Більш детально в чіт-листи .
git remote set-url origin https://host.com/name/.git