我的git存储库(但不在我的本地系统上)有一个名为
的目录"我的目录\\名"
它包含两个引号和两个反斜杠。
问题是我的仓库中的这个目录无法完全检查内容,因为(错误消息:) git找不到名为
的目录我\目录名
(我仍然可以单独检查每个其他目录和文件..)
我已经试图逃脱角色..
git rm -r'"我的\\目录名"'
git rm -r \"我的\\\\ directory-name \"
但是git没有找到任何匹配的文件。使用git ls-tree HEAD,我可以看到repo中的目录。
谁能告诉我如何从git repo中删除这样的目录?
答案 0 :(得分:1)
听起来这个目录的添加来自Linux主机,或者更确切地说是一个创建给定名称的目录没有问题的主机。现在,您在检查Windows上的分支状态时遇到问题,因为无法创建目录。
如果是这种情况,您应该看到git存储库的提交状态与结账时的区别
git status
如果是这种情况,那么您可以解决此问题并删除文件,如下所示:
使用
删除linux checkout中的目录 git rm -r '"the\\dir"'
git commit
(引用名称如#39;" \目录"'对我有效)
答案 1 :(得分:1)
我也遇到了这个问题
git status
产生
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: "\342\200\231"
我尝试了几乎所有我能想到的组合:
git rm --cached -r "\342\200\231"
fatal: pathspec '\342\200\231' did not match any files
git rm --cached -r \342\200\231
fatal: pathspec '342200231' did not match any files
git rm --cached -r \\342\\200\\231
fatal: pathspec '\342\200\231' did not match any files
git rm --cached -r "\\342\\200\\231"
fatal: pathspec '\342\200\231' did not match any files
git rm --cached -r '"\\342\\200\\231"'
fatal: pathspec '"\\342\\200\\231"' did not match any files
git rm --cached -r '"\342\200\231"'
fatal: pathspec '"\342\200\231"' did not match any files
git rm --cached -r '\342\200\231'
fatal: pathspec '\342\200\231' did not match any files
git rm --cached -r '\\342\\200\\231'
fatal: pathspec '\\342\\200\\231' did not match any files
Ubunut上的git版本2.7.4
答案 2 :(得分:0)
我无法尝试这一点,因为我的问题以某种方式解决了。我在另一个Windows系统上逐个检出了repo中的文件和目录,除了“已损坏”目录。然后,当我下次从我的新工作副本提交时,该目录处于删除模式,所以我只是可以推送并且在存储库中删除了该目录。