go local history本地历史恢复代码神器

 更新时间:2024年01月07日 16:57:47   作者:golang学习记  
这篇文章主要为大家介绍了go local history本地历史恢复代码神器的使用功能详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

local history

今天来介绍一个goland很逆天的功能:local history,也就是本地历史。

这个功能不常被人提及,但是他就像是山中的隐士一样,不出手则已,一出手就是王炸。

这个功能是用来记录项目里面的历史改变的,这个改变包含一般意义的改变,比如说你对某个文件做了一些改动,也包含你之前删除的文件。

既然是本地历史,那么我们就可以回到历史的某个时间点的状态。人们常说人生无法时光倒流,也没有后悔药去修正自己犯过的错误。但是对于代码就不一样了。我们有机会让代码回过去的某个状态。

听起来,本地历史很像git的回退功能。但是他们起作用的时间点是不一样的,git是对已经提交的代码进行回退到某个过去的版本;本地历史则是在你编辑代码的全过程进行项目的状态记录,从这个意义上讲,他比git更强大。

实操本地历史的使用

假定这么一个场景,前几天你已经提交了一次代码,然后开始对一个文件进行了一些更改(比如有25次的更改),但是在你提交代码之前,你突然意识到 这个文件有一个重要的方法目前是没有(这个方法在第三次更改的时候加的,后面又删了),你需要让这个文件重新具有这个方法的代码。

你想过使用撤销(快捷键 ctrl+z)来试图回退让这个方法重新具有,但是一想到要按很多次ctrl+z,也害怕多次的ctrl+z会出问题。

此时,你就可以用到本地历史了。

第一个:回退单个文件

对这个文件右击,然后选择Local history,然后选择Show history,然后回弹出一个窗口,窗口左边就是之前的这个文件出现的版本的列表,每个版本默认带了一个自己的时间戳。窗口右边是一个差异的查看器,选择一个历史版本,然后和当前的版本进行差异对比,以此来确定自己需要哪个历史版本的文件。

当选定了一个历史版本,就可以点击向左的箭头符号,实现回退。

前面选中某个版本,然后回退,那么代码就是这个版本的代码;如果你只想要这个历史版本的某一部分代码,那么可以点击>>去把想要的代码移到当前的版本里。

第二个:回退多个文件

先选中多个文件,然后向前面右击选择Local hisotry|show history。

第三个:回退已经删除的文件

如果你之前不小心删除了某个文件,也可以同上一样操作,删除的文件在历史版本里面标记了Deleting。

如下动图,来恢复已经删除的server.go

前面提到每个文件的历史版本是通过时间戳来标识的,那么如果在操作多个文件,或者对同一个文件前面的更改次数太多了,可能就不那么好识别具体的版本了。此时可以给当前文件的版本加一个Label来区别。

还是右击文件,选择Local history,然后选择put label,然后给一个当前更改的标识(最好是一个有业务含义的名字)。

为了减少鼠标的点击,可以先按2次 shift,然后输入local ,选择local history来快速调出本地历史

本地历史很强大,可以帮我们很快恢复一些代码。但是他也是有使用边界的。本地历史默认只能保存最近5天有修改的文件。这个值也是可以修改的,在Setting里面的IDE下面找到Duration of storing changes in Local History ,然后你可以给个30天(应该够了)。

以上就是go local history本地历史恢复代码神器的详细内容,更多关于go local history恢复代码的资料请关注脚本之家其它相关文章!

相关文章

  • go语言用八百行代码实现一个JSON解析器

    go语言用八百行代码实现一个JSON解析器

    这篇文章主要为大家介绍了go语言用八百行代码实现一个JSON解析器实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • golang函数的返回值实现

    golang函数的返回值实现

    本文主要介绍了golang函数的返回值实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Golang协程常见面试题小结

    Golang协程常见面试题小结

    本文主要介绍了Golang协程常见面试题小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Go语言操作etcd的示例详解

    Go语言操作etcd的示例详解

    etcd是使用Go语言开发的一个开源的、高可用的分布式key—value存储系统,可以用于配置共享和服务的注册和发现,下面我们就来看看Go语言是如何操作etcd的吧
    2024-03-03
  • Go语言常见错误之将接口定义在实现方

    Go语言常见错误之将接口定义在实现方

    在Go中,接口起到一个十分关键的角色,它们提供了一种方式来定义对象的行为,而不需要知道对象的具体实现,一个常见的错误是在实现方而不是使用方定义接口,本文将详细探讨为何这样做是一个错误,以及如何避免它
    2024-01-01
  • Go语言实现基于websocket浏览器通知功能

    Go语言实现基于websocket浏览器通知功能

    这篇文章主要介绍了Go语言实现基于websocket浏览器通知功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Go语言中常量的实现

    Go语言中常量的实现

    Go语言支持单常量和多常量的定义方法,通过const关键字实现,常量用于存储不变的值,如圆周率或固定的错误信息,旨在提高代码的维护性和可读性,感兴趣的可以了解一下
    2024-10-10
  • 详解如何使用Go模块进行依赖管理

    详解如何使用Go模块进行依赖管理

    本文将介绍Go语言中的模块(module)概念,以及如何使用Go模块进行依赖管理,我们会探讨模块的基本概念、使用方法、配置和依赖关系管理等方面的内容,需要的朋友可以参考下
    2023-10-10
  • Go之集合slice的实现

    Go之集合slice的实现

    本文主要介绍了Go之集合slice的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 详解Go中如何进行进行内存优化和垃圾收集器管理

    详解Go中如何进行进行内存优化和垃圾收集器管理

    这篇文章主要为大家详细介绍了Go中如何进行进行内存优化和垃圾收集器管理,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-11-11

最新评论