在Windows下使用带引号名称的Git标签

8
我们在GitHub上有一个存储库,其中有几个标记名称中包含双引号"。偶尔,一些Windows主机在获取时会出现以下错误。如果我们解决了一些Windows主机无法获取的问题,那就太棒了,但我不知道为什么有些主机失败而其他主机没有失败。

fatal: 无法创建 'C:/src/code/tags/some_tag_"with_quotes".lock': 参数无效

作为解决方法,我们删除了GitHub上的标记,但是不可避免地,某些本地计算机上存在这些标记的人会运行git push并将标记推回GitHub。让每个人重新克隆将很痛苦。

这些标记不能在本地(Windows上)删除,会生成相同的错误。

请确切指明使用单引号还是双引号。我建议向Git邮件列表发送详细的电子邮件。 - JJD
问题是否持久存在?也就是说,如果 Windows 计算机无法工作,它会在其他时间工作吗?还是从来不工作? - andyg0808
双引号,@JJD,感谢您提供的Git邮件列表提示。 - Dlongnecker
好问题,@andyg0808,它肯定是持久的,但我不确定它是否对该主机或该主机上的存储库持久,我会回复你的。 - Dlongnecker
1个回答

2
注意:此答案已被撕毁并重写,与原始版本不同。
我想知道您是否遇到了文件系统文件名中允许的字符的问题。例如,根据维基百科(链接1),FAT 不允许使用双引号 (")。根据维基百科(链接2),只有当文件名在 Posix 命名空间中时,NTFS 才会接受双引号,但我似乎找不到其他地方的这些信息。此外,微软似乎建议避免在文件名中使用双引号。Posix 似乎只允许在“可移植”文件名中使用 A-Za-z_.-。更多信息请参见维基百科上的文件系统限制文件系统功能
也许你可以尝试使用Git的Cygwin版本。看起来Cygwin在Windows上支持文件名中的引号。

问题几乎肯定是文件系统和git之间的交互问题。话虽如此,我正在使用NTFS工作,而且我不确定如何创建一个带有双引号的文件名。我尝试的每种方法都会生成某种错误。 - Dlongnecker
好主意,我会在大约12小时后试一下。 - Dlongnecker
不错的建议,@andy0808,cygwin解决了问题。我会再尝试一下,看看能不能找出为什么有些主机需要在“git fetch”时创建这个文件,因为这是我的问题的根源,但如果找不到答案,我就接受这个方法。 - Dlongnecker
另外,不需要指出你的答案已经被编辑过了!SO会跟踪编辑历史,所以我知道你更新了 :P - Dlongnecker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接