Git

如何在腳本中將使用者名/密碼提供給 git clone,但不在 .git/config 中儲存憑據

  • September 24, 2021

我在這樣的腳本中複製一個 git 儲存庫:

git clone https://user:password@host.com/name/.git

這可行,但我的使用者名和密碼!現在儲存在原始 url 中.git/config

如何防止這種情況,但仍然在腳本中執行此操作(因此無需手動輸入密碼)?

我使用的方法是實際使用 agit 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

引用自:https://serverfault.com/questions/815043