我有一个git项目。最新版本中已省略了一些源文件。我想从现在开始将它们从回购中删除,但到目前为止保留了它们的历史。即如果我查看昨天的回购,它最好有这些文件,否则就无法编译。
我知道它可能是“git rm”,但我现在有2个问题与git rm有关。一个是我找不到任何明确说“git rm保留文件在回购中的历史”的文档。我已经从我的工作目录中删除了这些文件,所以我怀疑我可以git rm文件甚至不存在。 (我可以复制它们,只是为了能够做一个git rm,但我想确保我做的事情是正确的。)
答案 0 :(得分:7)
确实是git rm
。
当然它会保留文件历史记录。它在之前的提交中,所以你可以休息,确保它存在。
是的,您可以git rm
您刚删除的文件,唯一的困难可能是您无法选项卡填写文件名,因为它们不存在。
在git
存储库中工作时,如果您记得执行git rm <file>
而不是rm <file>
然后git rm <file>
,则会更容易。
作为git
,出于其目的,“保留存储库中的文件历史记录”,当没有发生此行为时,更有可能看到注释。与设计相反的警告说明,例如“警告,此功能不保留存储库中的历史记录”,比说明git
的选项确实保留文件历史记录更有可能。
答案 1 :(得分:1)
git rm
删除文件,后续提交提交该文件的删除。删除是一个像其他任何变化,并由git跟踪。检查旧的仓库将恢复原来的仓库,包括不再位于树顶端的文件。