【发布时间】:2018-06-25 20:32:11
【问题描述】:
编辑:我能够从垃圾箱中恢复我的文件,所以我不需要解决方案,但我很想知道如何使用 git 进行恢复(因为它造成了问题)以及为什么任何 git 操作都会影响“忽略”的文件。
我有一个带有以下条目的 .gitignore:
reference/
这是一个文件夹,我的项目中有许多大型参考数据文件。
我做了一个
git rm -r
这些文件被删除了
我没有意识到它们已经消失了,为了找回所有东西,我使用 github 客户端“放弃所有更改...”
现在一切都回来了,除了那些被“忽略”的文件。
我的操作系统是 OSX High Sierra。
我怎样才能找回它们?
【问题讨论】:
-
听起来你遇到了 git 非常聪明和漂亮,但不是魔法的部分。当你删除一个没有被 git 记录的文件时(因为你告诉它不要这样做),它无法通过 git 恢复它。您可以自行维护未跟踪的文件。
-
如果我告诉 git 删除文件,它不应该删除我之前告诉它忽略的文件。它应该忽略它们。破坏性操作的不对称处理没有什么聪明或漂亮的。这与聪明和美丽相反。
-
git-rm - Remove files from the working tree and from the index。您可以将忽略的文件添加到提交中,因此git rm必须能够处理它们。如果您不想删除文件,请不要使用包含rm -r的任何内容。