Git添加一个名称中带有空格的文件夹
Posted
技术标签:
【中文标题】Git添加一个名称中带有空格的文件夹【英文标题】:Git add a folder with spaces in the name 【发布时间】:2015-02-08 04:12:39 【问题描述】:问题
当我想在暂存区添加一些东西时,我通常键入 git add 。但是,我无法添加名称中带有空格的文件夹。我的git add
自动完成无法正确转义空格。
例如
我有一个文件夹,名为:文件夹 A
我运行命令git add F < tab-autocomplete >
,它变成git add Folder A/
。
如果我尝试添加此文件夹,它将引发错误:
fatal: pathspec 'Folder' did not match any files
这是因为正确的语法应该是git add Folder\ A/
。
总结
我不知道如何解决这个问题,也找不到任何具有永久修复的资源。此问题“How git deals with folder names with spaces”描述了一个修复程序。但它涉及在文件夹名称周围放置语音标记,我真的不想这样做。有没有更好的解决方案?
我正在使用 git 版本 2.2.0 和 zsh 版本 5.0.7。提前谢谢!
【问题讨论】:
最新的 git 2.8.3 问题是否仍然存在? 【参考方案1】:解决方案是将文件夹名称包含在 ' 和 '(单引号)中。 在您的示例中,请尝试以下操作:
git add 'Folder A'
我希望这会有所帮助:)
【讨论】:
windows上,必须是双引号,比如git add "Folder A"【参考方案2】:您检查“git completion with zsh: filenames with spaces aren't being escaped properly”中提到的设置是否有效:
当我使用制表符完成插入文件名时,shell 反斜杠按预期转义了文件名。
% echo "testing" >> test<tab>
点击三下标签后自动完成。
% echo "testing" >> test\ four\ -\ latest.txt
换句话说,正确的补全不应该需要 quptes ("
),而是应该转义空格。
【讨论】:
当我运行命令echo "testing" >> test<tab>
它会正确地自动完成。但是,如上所述,当我尝试git add <tab>
时,它不会自动完成。我可以进一步澄清我的问题吗?作为一种解决方法,我已经开始使用git add "<tab autocomplete>"
来转义空格。但正如你所说@VonC:proper completion shouldn't need quptes ("), but should escape spaces.
以上是关于Git添加一个名称中带有空格的文件夹的主要内容,如果未能解决你的问题,请参考以下文章
Windows 7 与 Windows 10 - 处理批处理文件中带有空格的文件夹名称