我有不跟踪 .gitignore
的存储库,有人提交了 node_modules
文件夹,后来我们决定取消跟踪它。现在同一个人(git 新手)在再次取消跟踪之前提交了 '.gitignore' 几次提交。现在我们的情况是,如果我们检出旧提交,它会从 repo 中删除几个未跟踪的文件,并且还会造成“vs code”由于数千个未跟踪文件而变慢的情况。处理这种情况的最佳方法是什么?我想我需要压缩这些提交并将它们保存在单独的分支上,这样就不会有人不小心检查它了。我还有其他选择吗?
事情发生后,
.gitignore was never tracked
node_modules were tracked
.gitignore was tracked
node_modules was untracked
.gitingore was untracked
答案 0 :(得分:1)
您在 master
顶部所描述的形式已修复,问题只是有人检查旧版本的代码,那里的东西已损坏。
没有简单的方法可以修复它。为此,您需要重写整个历史记录,并确保使用新历史记录更新存储库的所有副本。这是组织的噩梦,您将永远错过一个将被推回主存储库的仓库,您将回到初始状态。所以不要尝试。
唯一合理的解决方案是当有人检出旧版本代码时的地址场景。如果这是某个分支,例如:release-1.x.x
,那么只需挑选一个提交来修复该分支的问题。
如果开发人员必须将代码签出到特定版本/提交,只要此版本的代码需要一些维护,他们就必须忍受这个问题。
重要的是要从这类问题中吸取教训:
.gitignore
到存储库。.gitignore
和 git 钩子未涵盖)不良更改的好方法