将答案传递给 git 命令

将答案传递给 git 命令

我尝试获取“git pull”。它要求输入用户名和密码。我怎样才能自动化它?

➜ git:(master) git pull
Username for 'http://127.0.0.1': username
Password for 'http://[email protected]': password

我尝试这样做,但用户名在 git 询问之前就已传递

/bin/sh -c 'cd /var/www/ && git pull | echo username | echo password'

答案1

如果您可以通过 ssh 而不是 https 进行访问,则可以使用 ssh 密钥。

您还可以使用以下 URL 表示法,如 Andrew Pi 建议的:

git pull https://username:[email protected]/username/repository.git

也可以只设置用户,因此它只提示输入密码:

git pull https://[email protected]/username/repository.git

答案2

您可以将密码保存在配置文件中,并使用与“source /path-to-config-file”相同的文件。如果 GIT_USERNAME 和 GIT_PASSWORD 是变量,则使用

git clone http://$GIT_USERNAME:$GIT_PASSWORD@some_git_server.com/project.git

使用检查输出

success=$?

或者

echo SUDO_PASSWORD | sudo -S su -c "USERNAME PASSWORD" | git pull; exit"

答案3

你可以尝试

/bin/sh -c 'cd /var/www/ && echo -e "username\npassword" | git pull'

也就是说,将echo命令放在命令之前pull。这就是echo将 传递给pull命令的方式。

相关内容