首页 > 解决方案 > 带有特殊字符的 TFS Git 命令行

问题描述

我想使用我的密码和用户名启动一个 git clone 命令,但我的密码包含特殊字符(例如:)pass/word@123

git clone https://username:pass/word@123@mysite.com/myrepo

该命令显然不起作用,因为它确实错误地解释了特殊字符。我尝试使用百分比编码和反斜杠,但它仍然无法正常工作。password%40123当我使用而不是.git 时,Git 说身份验证失败password@123。我能做些什么 ?

注意:我使用的不是 github,而是 Microsoft TFS。

注意 2:当 git 询问时,我不能先输入 url 和密码(因为我尝试从 PHP/Symfony 运行命令(但是直接从命令行使用百分比编码仍然不起作用))

注3:当然我不能更改密码

谢谢。

编辑 :

测试后,它在 GitHub 存储库(使用百分比编码)上工作,但不在 TFS 上。所以问题来自TFS。

标签: gittfsspecial-characters

解决方案


正如您所说,它会将后面@的字符视为远程站点 url。

看看这个线程:运行“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


推荐阅读