我尝试获取“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
命令的方式。