22

我已经为 Windows 和 Linux 编写了脚本,基本上用我们服务器上的所有 git 存储库设置了一个新的用户工作区。

我希望用户为我们的服务器输入一次密码,将其存储在本地变量中,将该变量传递给每个git pull命令,然后删除密码变量并退出。

git pull命令请求时如何输入密码?适用于 Windows 批处理文件和 Linux shell 脚本。

这是来自 Linux 脚本的代码:

#!/bin/bash

echo "Enter password: "
read pswd
clear #No screen peaking

#This is repeated for each repo
location=folderName
mkdir $location
cd $location
git init
git remote add origin git@<server>:$location.git
git pull origin master 
#Above prompts for password & is where I want to automatically input $pswd

我已经尝试过在 SO 和其他地方推荐的各种东西,例如管道、从 .txt 文件读取等。我宁愿不需要任何东西,只需要普通的旧 Windows cmd 和 Linux 终端命令。由于此脚本仅用于设置目的,因此我不需要使用 ssh 代理之类的东西永久安全地存储密码。

我运行的是 Windows 7 和 Ubuntu 12.10,但是这个脚本是为设置新用户而设计的,所以它应该可以在大多数发行版上运行。

4

3 回答 3

46

概要:

git pull "https://<username>:<password>@github.com/<github_account>/<repository_name>.git" <branch_name>

例子:

git pull "https://admin:12345@github.com/Jet/myProject.git" master

注意:这适用于我的 bash 脚本

于 2015-09-14T06:35:34.683 回答
4

我真的建议不要尝试管理该密码步骤,并将其(在 Linux 和 Windows 上)委托给git credential helper
看:

用户每次会话仅输入一次密码。

于 2013-01-31T15:31:49.077 回答
4

读取遥控器urlgit然后插入ID密码 ( PW)url可能会起作用。

例如尝试以下操作:

cd ${REPOSITORY_DIR}
origin=$(git remote get-url origin)
origin_with_pass=${origin/"//"/"//${USER_ID}:${USER_PW}@"}
git pull ${origin_with_pass} master
于 2019-09-05T08:20:27.160 回答