用于git push的命令中的用户名和密码

时间:2015-04-21 15:20:07

标签: git git-bash

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

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

推送时是否也可以指定用户名和密码?因此,例如,运行git push origin --all将输出要求输入密码。我希望在一个命令中使用它。

(我知道能够设置密钥和其他解决方案,但我想知道是否有办法只使用一个命令继续使用用户名和密码。)我在Windows 8.1上运行Git Bash。 / p>

6 个答案:

答案 0 :(得分:106)

是的,你可以做到

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

在这种情况下,{p> https://username:password@myrepository.biz/file.git会替换origin

中的git push origin --all

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

答案 1 :(得分:6)

我使用了以下格式

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

,如果您的密码或用户名包含@,请将其替换为%40

答案 2 :(得分:6)

对于任何有特殊字符密码问题的人,只需忽略密码,它会提示您输入密码:

git push https://YOUR_GIT_USERNAME@github.com/YOUR_GIT_USERNAME/yourGitFileName.git

答案 3 :(得分:3)

当您使用这样的网址时,Git不会存储密码。相反,它只会存储用户名,因此下次只需要提示您输入密码。如manual中所述,要存储密码,您应使用外部凭据帮助程序。对于Windows,您可以使用Windows Credential Store for Git。默认情况下,此助手也包含在GitHub for Windows

使用它时,系统会自动记住您的密码,因此您只需输入一次即可。因此,当您克隆时,系统会要求您输入密码,然后与遥控器的每次进一步通信都不会再次提示您输入密码。相反,凭证助手将为Git提供身份验证。

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

答案 4 :(得分:3)

根据Git documentationgit 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参数可以是网址或远程名称。

因此,您可以使用与clone命令示例相同的方式指定用户名和密码。

答案 5 :(得分:3)

有可能但是,在git 2。9。3(2016年8月)之前,git push会打印推回克隆回购时使用的完整网址。
那将包括您的用户名和密码!

但不多了:commit 68f3c07commit 882d49c(2016年7月20日)和Jeff King (peff)(2016年7月14日){。{3}}。 (由Junio C Hamano -- gitster --合并于commit 71076e1,2016年8月8日)

  

push:在状态输出中匿名化URL

     

Commit 47abd85 (fetch: Strip usernames from url's before storing them, 2009-04-17, Git 1.6.4)教授抓取匿名网址   主要目的是避免在合并提交消息中粘贴密码,但作为副作用,我们也避免将它们打印到stderr。

     

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

     

请注意,要实现此目的,凭据必须出现在命令行或git配置文件中,这两种文件都不是特别安全。
  所以人们应该转而使用凭证助手,而不是   让这个问题消失了。

     

但是,没有理由不改善因任何原因最终使用URL中嵌入的凭据的人的情况。