我一直在使用Github上的遥控器进行git项目。它包含几个子模块。
创建子模块时,我的git客户端(Sourcetree)创建了一个具有不可见字符的文件夹,该文件夹一直在破坏。该文件夹已被推送到Github,我找不到恢复的方法。
子模块文件夹看起来像是“cours-divers”,但在Sourcetree中显示为“cours020-divers”,并在终端显示为“cours?-divers”。
此外,Sourcetree不再能够显示子模块列表。
在阅读相关主题后我尝试了什么:
fatal: pathspec 'cours020-divers' did not match any files
git reset --hard [revision]
。这适用于我的本地版本,但远程(Github)要求我提取更改。我也需要能够重置遥控器。git checkout [revision] .
似乎让事情恢复正常,但问题文件仍在污染项目。有没有办法以这样的方式“回到过去”,以至于Git有效忘记关于该文件,无论是本地还是远程?
答案 0 :(得分:0)
最后,经过一些试验和错误,我发现这个帖子提供了答案:Resetting remote to a certain commit
git reset --hard <commit-hash>
git push -f origin master
这样做可以有效地推动项目及时,并删除对违规文件的任何引用。