3

我有一个 git 项目。一些源文件已在最新版本中省略。我想从现在开始将它们从 repo 中删除,但保留它们迄今为止的历史。即如果我检查昨天的回购最好有这些文件,否则它不会编译。

我知道它可能是“git rm”,但我现在 git rm 有两个问题。一是我找不到任何明确说明“git rm 在 repo 中保留文件历史记录”的文档。而且我已经从我的工作目录中删除了这些文件,所以我怀疑我是否可以 git rm 甚至不存在的文件。(我可以将它们复制回来,只是为了能够执行 git rm,但我想确保我做的事情是正确的。)

4

2 回答 2

7

确实如此git rm

当然,它会保留文件历史记录。它在先前的提交中,因此您可以放心,确保它在那里。

是的,您可以git rm删除刚刚删除的文件,唯一的困难可能是您无法完成文件名,因为它们不存在。

git存储库中工作时,如果您能记住 dogit rm <file>而不是rm <file>然后执行git rm <file>.

因为git,就其目的而言,“保留存储库中的文件历史记录”当这种行为没有发生时,它更有可能看到评论。与设计相反的警告说明,例如“警告,此功能不保留存储库中的历史记录”,比说明选项git确实保留文件历史记录更有可能。

于 2013-08-16T02:52:40.370 回答
1

git rm删除一个文件,随后的提交提交删除该文件。删除是与其他任何更改一样的更改,并由 git 跟踪。签出旧的 repo 将恢复整个 repo 的原始状态,包括不再位于树顶端的文件。

于 2013-08-16T02:52:37.353 回答