Git:从目录中删除文件,但确保该文件的版本保留在git历史记录中

时间:2018-08-29 14:57:56

标签: git

我是Git的新用户,不知道是否可能出现以下情况:

我想通过删除其中包含的某些文件来“清理”我一直在使用的目录,以保持对项目的清晰监督。假设我要删除的文件称为old.txt

但是我不确定我永远不会再回到这个文件了-所以我仍然希望可以使用git历史记录来恢复到该文件。

是否有办法确保仍然可行?

2 个答案:

答案 0 :(得分:2)

遍历提交树时(例如,使用Git日志),您仍然可以查看对文件所做的更改,以及哪个提交删除了该文件。但是,这在您想要返回并可能在以后的某个时间点还原文件时没有帮助。

在执行删除操作之前,我建议使用Git tag命令标记(“标记”)软件版本:

git tag -a v0.3-snapshot-before-refactoring -m "Some meaningfull message"

然后您可以使用Git checkout命令来检索此版本:

git checkout v0.3-snapshot-before-refactoring

答案 1 :(得分:0)

假设您有一个远程存储库,例如Github或Bitbucket。

Git使您可以使用git checkout命令在所有存储库状态之间导航。

唯一丢失old.txt的是在存储库中执行git push --force或类似操作。除了此命令之外,您还很安全。

如果不使用--force标志,则该命令只会添加一些历史记录,而不会更改当前历史记录。

我当然不考虑Github / Bitbucket服务器崩溃或破坏您的数据的可能性,或者存储库可能被删除的可能性。