Git无法处理含换行符的HTTPS URL,如何实现正常克隆?
解决HTTPS克隆含换行符路径Git仓库的问题
当尝试通过HTTPS克隆路径包含换行符的Git仓库时,会因Git凭据助手无法解析含换行符(或URL编码的%0A)的URL而报错,而SSH方式不受此限制。以下是可行的解决方法:
方法1:克隆时临时禁用凭据助手
直接强制Git在终端提示输入凭据,绕开无法处理特殊URL的凭据助手:
# 使用URL编码的换行符版本 GIT_TERMINAL_PROMPT=1 git clone 'https://forge.lindenii.runxiyu.org/lindenii/forge/:/repos/name%0Ahas%0Anewlines/' # 或者使用转义换行的版本 GIT_TERMINAL_PROMPT=1 git clone $'https://forge.lindenii.runxiyu.org/lindenii/forge/:/repos/name\nhas\nnewlines/'
方法2:针对目标仓库禁用凭据助手
先创建本地仓库,手动配置远程并禁用该仓库的凭据助手:
# 创建与仓库名匹配的本地目录 mkdir "name has newlines" cd "name has newlines" # 初始化本地仓库 git init # 禁用当前仓库的凭据助手 git config credential.helper "" # 添加远程仓库地址(二选一) git remote add origin 'https://forge.lindenii.runxiyu.org/lindenii/forge/:/repos/name%0Ahas%0Anewlines/' # 或者 git remote add origin $'https://forge.lindenii.runxiyu.org/lindenii/forge/:/repos/name\nhas\nnewlines/' # 拉取远程代码 git pull origin main
注意:替换
main为仓库实际的默认分支名(如master)。
方法3:修改服务器端仓库路径(最彻底)
如果拥有服务器权限,将仓库路径中的换行符替换为合法字符(如下划线_、连字符-),从根源避免URL特殊字符带来的兼容性问题——毕竟换行符不属于URL路径的常规合法字符,后续操作还可能引发其他异常。
内容的提问来源于stack exchange,提问作者Runxi Yu
相关产品推荐
相关产品推荐

