Git项目有一个不受支持的不可见字符的文件夹

时间:2016-09-13 19:50:49

标签: git github filenames

我一直在使用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有效忘记关于该文件,无论是本地还是远程?

1 个答案:

答案 0 :(得分:0)

最后,经过一些试验和错误,我发现这个帖子提供了答案:Resetting remote to a certain commit

git reset --hard <commit-hash>
git push -f origin master

这样做可以有效地推动项目及时,并删除对违规文件的任何引用。