Git
如何在腳本中將使用者名/密碼提供給 git clone,但不在 .git/config 中儲存憑據
我在這樣的腳本中複製一個 git 儲存庫:
git clone https://user:password@host.com/name/.git
這可行,但我的使用者名和密碼!現在儲存在原始 url 中
.git/config
。如何防止這種情況,但仍然在腳本中執行此操作(因此無需手動輸入密碼)?
我使用的方法是實際使用 a
git pull
而不是複製。該腳本如下所示:mkdir repo cd repo git init git config user.email "email" git config user.name "user" git pull https://user:password@github.com/name/repo.git master
這不會將您的使用者名或密碼儲存在
.git/config
. 但是,除非採取其他步驟,否則當程序從顯示目前程序的命令(例如 )執行時,純文字使用者名和密碼將可見ps
。正如評論中提到的,由於此方法使用 HTTPS ,因此您必須對密碼中可能出現的任何特殊字元進行 URL 編碼。
我將提出的另一個建議(如果您不能使用 ssh)是實際使用 OAuth 令牌而不是純文字使用者名/密碼,因為它稍微安全一些。您可以從您的個人資料設置中生成 OAuth 令牌:https ://github.com/settings/tokens 。
然後使用該令牌拉命令將是
git pull https://$OAUTH_TOKEN:x-oauth-basic@github.com/name/repo.git master