首页 > 解决方案 > 使用 git 推送时将“终端”重定向到“标准输入”

问题描述

如下推送时,有什么方法可以将终端输入重定向到标准输入?

$ git push origin master
Username for 'https://github.com':

然后我可以通过标准输入传递我的用户名/密码。

例如,在基于 linux 的系统中,该sudo命令总是从终端读取密码,但如果您为它提供一个-S标志,那么它将从标准输入读取密码。

我只是好奇git命令中是否有类似的标志?

注意:我的问题只是将git命令输入重定向到标准输入,我不关心安全性或任何其他事情。

标签: gitpushstdin

解决方案


Git 通常不会自己询问密码:它会在其他程序上完成这项工作。

当使用 ssh(git clone ssh://...等等)时,Git 只是直接运行 ssh 本身。这让一切都取决于 ssh。

当使用 http 或 https 时,Git 使用 libcurl 库和凭证助手。你可以告诉 Git 使用哪个凭证助手,这样你就可以自己编写一个从标准输入读取密码的工具,然后告诉 Git 使用那个。这将是相当不安全的,但你绝对可以这样做。

对于其余部分,请参阅Git 推送需要用户名和密码


推荐阅读