更新本地分支时发生Git错误:错误合并:无法在';处创建目录';:没有这样的文件或目录

更新本地分支时发生Git错误:错误合并:无法在';处创建目录';:没有这样的文件或目录,git,git-checkout,Git,Git Checkout,我正在尝试从远程更新本地存储库。通常我使用的是git pull,它总是有效的 其中一个参与者在他创建的路径中添加了文件。路径包含空格:“/d1/d2/d3”。当我尝试git拉取更新时,我得到以下错误: 致命:无法在“/d1/d2/d3”处创建目录:没有此类文件或目录 我试过:git签出--'/d1/d2/d3/d4/file.ext' 我有以下错误: 错误:pathspec“/d1/d2/d3/d4/file.ext”与git已知的任何文件都不匹配 如何安全地更新远程中的路径 如果不可能,如何绕

我正在尝试从远程更新本地存储库。通常我使用的是git pull,它总是有效的

其中一个参与者在他创建的路径中添加了文件。路径包含空格:“/d1/d2/d3”。当我尝试
git拉取更新时,我得到以下错误:

致命:无法在“/d1/d2/d3”处创建目录:没有此类文件或目录

我试过:
git签出--'/d1/d2/d3/d4/file.ext'
我有以下错误:

错误:pathspec“/d1/d2/d3/d4/file.ext”与git已知的任何文件都不匹配

  • 如何安全地更新远程中的路径
  • 如果不可能,如何绕过此错误
  • 谢谢你

    很可能会工作 您可以通过手动创建目录来克服这一问题,一次创建一个目录,而不是一个命令一次创建所有目录。在Git Bash中:

    $mkdir“cd1/cd2/cd3”
    mkdir:无法创建目录“cd1/cd2/cd3”:没有这样的文件或目录
    $mkdir“cd1”
    $mkdir“cd1/cd2”
    $mkdir“cd1/cd2/cd3”
    $mkdir“cd1/cd2/cd3/cd4”
    $cd cd1
    $ls
    “cd2”/
    $cd“cd2”
    $ls
    “cd3”/
    等
    
    当git试图还原目录中的文件时,这将使目录已经存在。那么合并应该完成了

    当目录与结尾(和/或开头)的空格链接在一起时,mkdir命令在尝试创建中间目录时会阻塞。当它将内部目录名拆分时,可能没有保护它们,并且空间被剥离

    如果这不起作用呢 如果无法直接使用,请将
    git pull
    命令拆分为
    git fetch origin
    git merge origin/master
    。然后,您必须使用不同的方法进行进一步操作,要么合并到远程
    origin/master
    分支,要么将本地
    master
    分支重置为新提交。在如上所示手动创建文件夹后,您应该能够手动从新提交中提取所有文件,然后主分支的软重置应该可以工作(注意:在执行此操作之前,如果您和它之间存在任何问题,请先合并到问题提交中)

    在远程服务器上删除 顺便说一句,如果您只想删除有问题的目录以及其中的任何文件,您可能可以在远程web界面上执行此操作。至少对于Github,您可以删除和编辑文件并进行新的提交。请记住,如果您删除目录中的所有文件,git不会保存实际目录本身,因此您可能只需要删除最终目录中的文件。

    最有可能工作 您可以通过手动创建目录来克服这一问题,一次创建一个目录,而不是一个命令一次创建所有目录。在Git Bash中:

    $mkdir“cd1/cd2/cd3”
    mkdir:无法创建目录“cd1/cd2/cd3”:没有这样的文件或目录
    $mkdir“cd1”
    $mkdir“cd1/cd2”
    $mkdir“cd1/cd2/cd3”
    $mkdir“cd1/cd2/cd3/cd4”
    $cd cd1
    $ls
    “cd2”/
    $cd“cd2”
    $ls
    “cd3”/
    等
    
    当git试图还原目录中的文件时,这将使目录已经存在。那么合并应该完成了

    当目录与结尾(和/或开头)的空格链接在一起时,mkdir命令在尝试创建中间目录时会阻塞。当它将内部目录名拆分时,可能没有保护它们,并且空间被剥离

    如果这不起作用呢 如果无法直接使用,请将
    git pull
    命令拆分为
    git fetch origin
    git merge origin/master
    。然后,您必须使用不同的方法进行进一步操作,要么合并到远程
    origin/master
    分支,要么将本地
    master
    分支重置为新提交。在如上所示手动创建文件夹后,您应该能够手动从新提交中提取所有文件,然后主分支的软重置应该可以工作(注意:在执行此操作之前,如果您和它之间存在任何问题,请先合并到问题提交中)

    在远程服务器上删除
    顺便说一句,如果您只想删除有问题的目录以及其中的任何文件,您可能可以在远程web界面上执行此操作。至少对于Github,您可以删除和编辑文件并进行新的提交。请记住,如果删除一个目录中的所有文件,git不会保存实际目录本身,因此您可能只需要删除最终目录中的文件。

    是否使用双引号尝试签出命令?欢迎使用Stackoverflow,您使用的是哪种操作系统和哪种命令行:windows 10 cmd提示符或linux git bash等?@AskyMcAskface是的,我尝试过使用双引号,但没有work@mike我正在使用windows10和cmd行以及linux git bash:MINGW64。我也尝试过pycharm,但也出现了同样的错误。您是否尝试过使用双引号签出命令?欢迎使用Stackoverflow,您使用的是哪个操作系统和命令行:windows 10 cmd提示符或linux git bash等?@AskyMcAskface是的,我尝试过使用双引号,但没有work@mike我用的是windows10,以及使用LinuxGitBash:MINGW64的cmd行。我也尝试了pycharm,得到了同样的错误。