在写这篇文章的时候,我想起了N年前的一件往事。我不小心删除了一个我刚刚写的页面。我又重写了一个多小时。那个时候如果在IDEA中知道这个功能就好了!今天就给小伙伴们介绍一下IDEA中的LocalHistory功能。1.本地历史其实IDEA中的这些小功能大家可能都知道,但是稍不留神,可能就辜负了开发IDEA的同仁们的心血。IDEA中的LocalHistory功能可以帮助我们跟踪对项目文件所做的更改,并且这种跟踪不受版本控制的影响。也就是说,无论你使用Git还是Svn等工具,IDEA中的LocalHistory功能都是可用的。IDEA中的LocalHistory功能不需要我们手动commit。当我们在编码、测试或部署项目时,它会自动记录我们项目文件的状态。通过IDEA内置的LocalHistory功能,我们可以恢复被删除的文件,恢复文件的某个变化,或者将文件回滚到历史上的任意一点。最重要的是,所有这一切都不依赖于版本控制工具。不过需要注意的是,LocalHistory功能虽然使用方便,但不能用来代替版本控制工具。这主要是由于以下原因:LocalHistory有一个保留期,超过这个时间版本数据就会丢失。本地历史记录有最大大小,因此不能保证版本数据会持续存在。安装新版本的IDEA时会自动清除本地历史记录。如果用户手动点击File->InvalidateCaches/Restart,版本数据也会丢失。2.举几个例子。2.1恢复删除的文件假设我有一个名为druid_monitor的项目,它没有使用版本控制工具Git或Svn。现在我不小心删除了这个项目中一个名为RemoveAdFilter的类。删除后发现删除错误,想恢复。我应该怎么办?选中当前项目,右键,选择LocalHistory->ShowHistory,如下图:在打开的页面中,我们可以看到这个项目中的文件变化:第一条记录就是我们刚刚删除的记录,现在我如果要恢复刚刚删除的文件,那么我们选择第一条日志,右击,选择Revert,如下图:数据恢复后,可以看到又多了一条日志记录:2.2恢复文件的变化如果你有某个类,如果你想回到历史上的某个版本,那么直接选择这个类,然后回滚版本。喜欢哪个历史版本,选择它并单击Revert。中间的是历史上的状态,右边的是类当前的状态:2.3标注如果代码在某一时刻的状态比较重要,可以用标签标注,如如下:选择PutLabel...设置一个标签,以后在ShowHistory中可以看到这个标签,有点像Git中的Tag功能,但不完全一样。3.修改有效期。文件本地历史存储时间默认为5个工作日,即文件在五个自然日内被修改。比如周一改了文件,周二没改,周三改了文件,就算两天。不过这个日期是可以自己修改的,修改方法如下:Ctrl+Shift+A,调用Action。键入注册表,然后按Enter。找到localHistory.daysToKeep,修改如下:设置值为0,禁用LocalHistory功能。4.版本内容存储位置LocalHistory记录存储在本地,不同系统存储位置如下:Windows:%LOCALAPPDATA%\JetBrains\
