用于git push的用户名和密码

可以克隆一个git仓库,在命令中指定用户名和密码。 例:

git clone https://username:password@myrepository.biz/file.git

推送时是否也可以指定用户名和密码? 所以,例如,运行git push origin --all都会输出要求input密码。 我想要一个命令。

(我知道设置密钥和其他解决scheme的能力,但是我想知道是否有一种方法,只需使用一个命令就可以继续使用用户名和密码)。我在Windows 8.1上运行Git Bash。

是的,你可以做

git push https://username:password@myrepository.biz/file.git --all

在这种情况下, https://username:password@myrepository.biz/file.gitreplacegit push origin --all

要看到更多的git push选项,请尝试git help push

当你使用这样的URL时,Git将不会存储密码。 相反,它只会存储用户名,所以下次只需要提示你input密码。 如手册中所述,要存储密码,您应该使用外部凭证助手 。 对于Windows,您可以使用Windows Credential Store for Git 。 GitHub for Windows默认也包含这个帮助器。

使用时,您的密码将被自动记住,所以您只需input一次即可。 所以当你克隆的时候,你会被要求input你的密码,然后再与遥控器进行任何进一步的通信都不会再次提示你input密码。 相反,证书助手将为Git提供authentication。

这当然只适用于通过https进行身份validation; 对于ssh访问( git@host.com/repository.git ),您使用SSH密钥和那些您可以使用ssh-agent (如果您使用plink,则为PuTTY的选美)。

根据Git文档 , git push命令的最后一个参数可以是要推送到的存储库:

  git push [--all | --mirror | --tags] [-n | --dry-run] [--receive-pack=<git-receive-pack>] [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose] [-u | --set-upstream] [<repository> [<refspec>…]] 

repository参数可以是URL或远程名称。

所以你可以像在你的clone命令的例子中一样指定用户名和密码。

这是可能的,但是,在git 2.9.3(2016年8月)之前, git push将打印推回到克隆回购的完整url。
这将包括您的用户名和密码!

但没有更多:请参阅提交68f3c07 (2016年7月20日),并提交由Jeff King( peff )的 882d49c (2016年7月14日) 。
(由Junio C gitstergitster – 承诺71076e1 ,2016年8月8日)

push :在状态输出中匿名URL

提交47abd85(提取:从URL中删除用户名之前,存储他们,2009年4月17日,Git 1.6.4)教取回取匿名url。
这样做的主要目的是避免在合并提交消息中插入密码,但是作为副作用,我们也避免将它们打印到stderr。

推侧没有合并提交问题,但可能应该避免将它们打印到stderr 。 我们可以重复使用相同的匿名function。

请注意,为了这一点,凭证将不得不出现在命令行或gitconfiguration文件中,这两者都不是特别安全。
所以人们应该改用使用凭证助手来解决这个问题。

但是,对于不pipe出于什么原因最终使用embedded在URL中的凭证的人来说,这都不是理由。