【发布时间】:2016-11-17 15:14:04
【问题描述】:
我一直在用 Github 上的遥控器做一个 git 项目。它包含几个子模块。
在创建子模块时,我的 git 客户端(Sourcetree)创建了一个带有隐形字符的文件夹,这一直在造成严重破坏。该文件夹已被推送到 Github,我找不到恢复的方法。
子模块文件夹看起来像是名为“cours-divers”,但在 Sourcetree 中显示为“cours020-divers”,在终端中显示为“cours?-divers”。
此外,Sourcetree 无法再显示子模块列表。
在阅读相关主题后,我尝试了什么:
- 只需将其删除即可。不幸的是,Git 无法正确跟踪此文件,因此它不会被删除。错误信息:
fatal: pathspec 'cours020-divers' did not match any files - 正在做
git reset --hard [revision]。这适用于我的本地版本,但远程(Github)需要我拉动更改。我还需要能够重置遥控器。 - 做
git checkout [revision] .似乎让事情恢复正常,但有问题的文件仍在污染项目。
有没有办法让 Git 在本地和远程有效地忘记该文件?
【问题讨论】:
-
关于上面可能的重复 - 由于文件名问题,这种方法在我的情况下不起作用。如果 git 无法处理文件名中的字符,则不能
git rm文件。 -
这个问题能说明问题吗? stackoverflow.com/questions/31846045/…我想知道您是否可以删除不可见的字符并执行
git add --all来暂存重命名的文件以进行提交。 -
感谢您的链接!但是,在那个问题中,字符出现在 inside 文本文件中 - 在我的情况下,它在实际文件名中。无论如何,我摆脱了它......