远程文件夹中的Git pull if文件夹包含空格

远程文件夹中的Git pull if文件夹包含空格,git,mingw,Git,Mingw,我只是想得到远程拉,但我不能正确地做它,因为在远程回购出现了名称中带有空格的文件夹。然后在git pull之后,我收到了这个文件夹中所有文件的消息,git无法创建它,所有这些文件都以“已删除”的形式放入未老化的更改中。 在这种情况下: $ git status On branch develop Your branch is up-to-date with 'origin/develop'. Changes not staged for commit: (u

我只是想得到远程拉,但我不能正确地做它,因为在远程回购出现了名称中带有空格的文件夹。然后在git pull之后,我收到了这个文件夹中所有文件的消息,git无法创建它,所有这些文件都以“已删除”的形式放入未老化的更改中。

在这种情况下:

$ git status
    On branch develop
    Your branch is up-to-date with 'origin/develop'.
    Changes not staged for commit:
      (use "git add/rm <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    ../support/UIKit/Layouts/Product /ProductBodyLayout.swift
               (and other files)

no changes added to commit (use "git add" and/or "git commit -a")
它将“已删除”文件添加到暂存:

 $ git status
On branch develop
Your branch is up-to-date with 'origin/develop'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    ../support/UIKit/Layouts/Product /ProductBodyLayout.swift

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    ../support/UIKit/Layouts/Product /ProductButtonLayout.swift
        (and other files)

在完整文件路径周围加双引号应该可以:

git add "../support/UIKit/Layouts/Product /ProductBodyLayout.swift"
你也可以逃离这个空间:

git add ../support/UIKit/Layouts/Product\ /ProductBodyLayout.swift
但是,尽管这解决了眼前的问题,但向前看,您可能希望避免使用包含必须转义字符的文件/路径名。这是因为你必须继续这样逃跑

如果要放弃删除操作,请接受bash的建议并使用以下命令:

git checkout -- "../support/UIKit/Layouts/Product /ProductBodyLayout.swift"

如果您仔细阅读来自git的消息,它会给出一些建议。可能您想要的是:

git checkout -- <file>...
git签出--。。。

请确保在文件名周围加引号。然后,您可以使用
git mv
git commit

重命名该文件。这似乎是处理空间的问题


您可以在文件名周围使用双引号(“)来处理此问题。或者手动复制文件,并将其作为新文件添加到本地,然后删除空格,这样就不会出现此问题。问题是该文件的所有历史记录都消失了,并被视为新文件。

不起作用,因为我之前说过,git add move this“已删除”“将文件暂存为“已删除”。我还说我不能确定你的问题是什么?您是在要求解决文件路径中的空间问题,还是在询问如何添加/撤消已删除的文件?我问应该怎么做,正确地执行git pull操作。目前git无法接收路径中有空格的文件并告诉我这些文件已被删除。不,这听起来不对
git pull
应该可以轻松地导入文件,无论路径是否有空格。你需要把你的问题缩小到你实际问的问题范围。蒂姆:你可能在Linux或Mac上工作。在Windows上,路径中的空格存在问题。请编辑您的问题,并显示您运行的确切Git命令,然后突出显示出错的地方。完成后,我还强调了Git Pulls中出错的地方。遗憾的是,您的编辑没有多大帮助,因为在拉之前,您没有显示什么是
git状态。我不认为一笔勾销的git拉动会导致这个错误。这似乎是一个MinGW问题。本质上,您选择使用的Git版本无法处理这个特定的存储库。Windows本身不是问题,Windows上的其他版本的Git应该可以工作。我不明白什么是“Git版本不能处理这个特定的存储库”。我应该更新我的Git吗?(目前是git版本2.13.2.windows.1)事实上,我使用这个repo大约一年了,一切正常,直到文件夹名称出现一个空格。OP没有任何带有空格的文件。把问题再读一遍。其他人(不是OP)向上游推送带有空格的文件。OP只是想通过spacesslebetman获取文件。是的,您正确理解了我对问题的描述,谢谢。对于我的悲伤,我无法编辑此文件夹名称,因为程序员告诉我这会产生问题。我认为他们已经在某个地方使用了这个路径,它不仅需要编辑文件夹名。。。一般来说,现在我似乎无法在这个命令行上从远程获取更改(我应该在Mac或Linux上使用repo,或者在Windows上找到其他可以正确使用路径中空格的命令行)。。。
git checkout -- "../support/UIKit/Layouts/Product /ProductBodyLayout.swift"
git checkout -- <file>...