git mingw 32和windows下的长路径/文件名

2w3kk1z5  于 2023-09-29  发布在  Git
关注(0)|答案(3)|浏览(141)

我有一个生产SVN仓库,我想用git克隆。当我尝试git svn clone它我得到的错误,有一些文件,有一个很长的组合路径文件名。
我认为这是由git运行的GNU shell mingw 32造成的限制,因为windows和unix都没有这种限制。
有没有办法克服这个限制?我不想在我确定我想移动到git之前开始更改文件名/路径。
谢谢.

nszi6y05

nszi6y051#

上述解决方案奏效了。除此之外,旧的存储库路径可能仍然显示在tortoicegit中,其完整的windows路径,但如果您转到windows资源管理器并获取新的驱动器号,这将在subst命令后产生,u可以看到正确的存储库和tortoicegit将在那里完美地工作。

4sup72z8

4sup72z82#

这是Windows的一个限制,因为MAX_PATH是260个字符,也就是说,路径最多可以有260个字符(因此,一旦您考虑了驱动程序字母,冒号和初始\以及尾随的NUL,您的路径就有256个字符)。
Windows有一个长度约为32,767的UNC路径。您可以通过在路径前面加上\\?\来获得这样的路径
详情请看这里:http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
您还可以使用subst将长路径替换为驱动器名并对其进行操作。
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/subst.mspx?mfr=true
以上是克服限制的方法,但当然在git svn clone期间可能不适用。确保开始克隆的路径尽可能短。使用subst为要克隆的路径分配驱动器号,并使用该驱动器。

w8f9ii69

w8f9ii693#

我用的是Windows XP,也遇到了同样的问题。我使用subst遵循上面的解决方案,它工作了,如下所示:
首先,在命令提示符下:subst z:c:\my\rather\long\path\to\local\repo
在git中:git clone https://github.com/my/repo z:/repo_name
以前太长的存储库现在克隆到我的PC上。

相关问题