通过命令行以编程方式设置 git 凭证缓存

nao*_*nao 3 git

我正在使用该命令,git config credential.helper 'cache'因此不必重复输入用户名和密码。但是,这要求我设置一次凭据。有没有一种方法可以初始化缓存,管道中来自环境变量的值,该变量将在 runitme(例如$USER$PASS)中可用,但不能长期存储?

我不想使用git config user.name "your username"和等效的password命令,因为它会尝试以明文形式存储密码。我基本上只想在脚本中运行

git config credential.helper 'cache'
git config /*set $USER in cache*/
git config /*set $PASS in cache*/
Run Code Online (Sandbox Code Playgroud)

但不确定第二个和第三个命令会是什么样子,如果它们存在的话。

bk2*_*204 5

可以使用 来填充缓存git credential approve,如git-credential(1)手册页中所述,但有一种更简单的方法可以执行您想要的操作。

您使用的凭证助手可以是任意的 shell 脚本,它可以根据环境生成标准格式。所以你可以这样做:

git config credential.helper '!f() { printf "%s\n" "username=$USER" "password=$PASS"; };f'
Run Code Online (Sandbox Code Playgroud)

当然,在很多环境中,使用无密码的 SSH 密钥更容易也更安全,但是在某些情况下,例如容器构建,不允许以安全的方式这样做,因此我上面给出的示例可能会有所帮助。