目录

问题现象:

问题分析:

方法一:从commit信息历史记录中选取自己想要的commit信息

总结:

方法二:直接获取commit信息历史记录中最新的commit信息

注意:

总结:

解决方法:

方法一:从commit信息历史记录中选取自己想要的commit信息

方法二:直接获取commit信息历史记录中最新的commit信息


问题现象:

        今天算是很好地(虽然不算非常完美)解决了一个困扰我许久的小问题:

        使用IDEA开发工具提交代码时,如何获取最新的commit信息历史记录?


问题分析:

        本文中我用的IDEA开发工具版本号是2022.2.3

        在开发过程使用IDEA开发工具进行代码commit提交的git操作时,有时候(不是一定)会出现commit信息居然是上上次commit时填写的信息,举例如下:

        项目的commit历史记录中最近的两条记录信息:

        当我修改代码并进行commit提交时,发现Commit Message窗口的commit信息还停留在上上次commit时填写的信息,而大部分时候进行代码提交时,Commit Message窗口的commit信息则是上次commit时填写的信息。

        我知道IDEA的Commit Message窗口会自带历史记录和获取功能,每次进行代码提交的时候,都会去commit信息的历史记录中去获取最新的一次commit信息,然后返回到Commit Message窗口上,但偶尔会失灵。

        在Commit Message窗口点击右边的“时钟”图标,即可查看IDEA自带的commit信息历史记录:

        接下来说说我的测试和分析过程。

        首先关于文章开头提到的那个问题,我个人觉得必须达到“当我每次打开commit窗口时,Commit Message中显示的都是最新的commit信息历史记录”(而不会是上上次或者更早的记录),这样才算是最完美的解决;但是目前还未探索达到该目标的方法,不过我也发现了很方便和非常方便的两种替代方法。

方法一:从commit信息历史记录中选取自己想要的commit信息

        如上图所示,在Commit Message窗口点击右边的“时钟”图标,即可查看IDEA自带的commit信息历史记录,此时选择我们想要的commit信息,即可把信息复制到本次Commit Message窗口中去。

总结:

        当commit信息历史记录中,有某次的commit信息是自己本次代码提交想要复制的commit信息时,建议使用该方法,可以节省打字时间。

方法二:直接获取commit信息历史记录中最新的commit信息

        如下图所示,勾选Amend Commit选项,即可自动拉取最新的commit信息到本次Commit Message窗口中去:

        如果此时取消勾选Amend Commit选项,则Commit Message 窗口的commit信息会回退至刚进行本次代码提交时(刚打开该界面时)的commit信息,但这个回退机制有个条件:

        必须是本次提交代码过程中,未手动编辑过Commit Message 窗口的commit信息(就是没在里面打过字),否则就无法回退,如下:
        

        可以看到勾选Amend Commit选项后,commit信息并未发生变化,因此IDEA把输入的commit信息当成了最新的commit信息了;因此取消勾选时也无法回退了。

注意:

        勾选Amend Commit选项后,并不是直接获取本地的commit信息,准确的说是本地的git日志的最新信息,比如我commit之前先做了merge操作:

        此时如果我再勾选Amend Commit选项,则commit信息就会变成git日志中最新信息,也就是merge操作的日志了:

总结:

        当想要直接使用上次的(commit信息历史记录中最新的)commit信息时,建议使用该方法,可以节省打字时间(缺点该方法只对单次commit有效,所以我说还没达到最完美解决状态,不过文章开头提到的问题发生的频率较低,所以也不用太纠结了)。


解决方法:

方法一:从commit信息历史记录中选取自己想要的commit信息

        点击Commit Message窗口点击右边的“时钟”图标:

        选取commit信息:

        选取后:

方法二:直接获取commit信息历史记录中最新的commit信息

        勾选Amend Commit选项:

         勾选前:

        勾选后:

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐