我想用我的密码和用户名启动git clone命令,但是我的密码包含特殊字符(例如:pass/word@123
):
git clone https://username:pass/word@123@mysite.com/myrepo
该命令显然不起作用,因为它错误地解释了特殊字符。我尝试使用percent encoding和反斜杠,但仍然无法正常工作。 Git说,当我使用password%40123
而不是password@123
时,身份验证失败。我该怎么办?
注意:我不是使用github,而是Microsoft TFS。
注2:当git询问时,我不能先输入url,然后再输入密码(因为我尝试从PHP / Symfony运行命令(但是直接从命令行使用它时,百分比编码仍然无法使用)) / p>
注3:我当然不能更改密码
谢谢。
编辑:
经过测试,它正在GitHub存储库(具有百分比编码)上工作,但在TFS上却没有。因此问题出在TFS。
答案 0 :(得分:1)
就像您说的那样,它将@
之后的字符视为远程站点URL。
看看这个线程:How to provide username and password when run "git clone git@remote.git"?
从来宾操作系统自动生成git clone时,使用 ssh键代替密码更为流行。
如果要使用带有特殊字符的密码(例如感叹号),则需要使用百分比编码,通常称为URL编码。
! # $ & ' ( ) * + , / : ; = ? @ [ ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
更多详细信息,请在此处参考类似的问题:Escape @ character in git proxy password