当前位置:首页 > > 充电吧
[导读]我们使用任何的版本管理工具,原因无外乎就是想要记录文件新增、修改、删除等相关操作,当我们修改文件出现错误的时候,可以及时回到没有出错的“备份”文件。当然Git作为优秀的版本管理工具这样的功能当然不能少

我们使用任何的版本管理工具,原因无外乎就是想要记录文件新增、修改、删除等相关操作,当我们修改文件出现错误的时候,可以及时回到没有出错的“备份”文件。当然Git作为优秀的版本管理工具这样的功能当然不能少,下面我们就来看下与版本管理相关的一些命令吧。

    命令:git log

    git log可以记录我们git commit操作(不会记录git add操作,如果你没有进行过一次git commit,那么git log的时候什么都不会显示),每次git commit都会产生一条记录,每条记录代表一次commit,一条记录共有四部分组成。

    

    commit:是一个由SHA1计算出来的非常大的数字,用十六进制表示,是此次操作的唯一标识符(每次commit的时候该值不会重复),我们可以通过它准确的找到此次提交操作,为恢复到该版本打下坚实的基础。

    Author: 提交该版本的作者以及该作者的邮箱

    在多人协作中,每个人都有可能对文件做出一些调整,如何区分是什么人做了这些调整呢,这就用到了Author。我们可以使用git config user.name和git config user.email来获取当前用户名和用户邮箱,如果没有设置或是需要调整,可以通过git config --global user.name "new name"来进行调整。设置Author很有必要,最好在git init之后就立刻设置,这样在你进行git commit的时候就能记录你设置的Author信息了。

    

    Date:提交的日期。

    最后:最后一行就是关于此次提交的说明,也就是我们git commit -m的内容了,这可以让我们更加清楚为什么做此次提交操作,为以后的版本恢复打下坚实基础。

    直接使用git log,会展示每次提交的详细的信息,但是当commit信息过多,亦或者我们不想要这么详细的信息的时候,此时我们就可以使用git log的另一种用法。


[plain] view plain copygit log --pretty=oneline  


变少了有某有,这样一屏下来就可以展示更多的commit信息了。    命令:git reset    git log只是帮我们记录了每次的提交操作,我们想要进行不同的版本切换,还需要用到git reset命令。在此之前,我们先多进行几次提交操作。准备工作做好了,正式开始吧。


    方法一:[plain] view plain copygit reset --hard HEAD^  git reset是版本回退命令,--hard是回退命令的一个参数,暂时不用深究它具体代表什么含义,只要记住这样操作可以达到我们回退的目的即可。前面的部分我们暂且把它当做是实现版本回退的一种固定格式,我们重点来说下HEAD^。在Git中,HEAD代表的是当前版本,拿上述例子来说就是"add four line",而加个^,就表示当前版本之前的版本,就是例子中“add third line”,每加一个^就表示更前的一个版本,例如HEAD^^就表示“add second line”这个版本,如果想要回到100个版本前,就需要100个^,当然回退的版本太靠前的话,光写^也是个麻烦事,还有,Git提供了另一种写法解决了这个问题。
    方法二:
[plain] view plain copygit reset --hard HEAD~1  把HEAD^换成了HEAD~1,其中1代表回退几个版本,如果需要回退到10个之前的版本,只需要把HEAD~1改为HEAD~10即可,是不是比10个^方便了好多呢。看起来是方便了点,但是仍有不足,如果想要回退到某个版本的时候,岂不是还要查一下这个版本和当前版本之间的差。Git也考虑到了这个问题,因此提供了第三种方法供我们使用。
    方法三:    [plain] view plain copygit reset --hard 1e7fac4  还记得刚才git log中提到的commit吗,此时我们就是把HEAD换成了commit。正是由于commit字串的唯一性,我们才能快速准确的回退到我们需要的版本,而不需要查找当前版本和切换版本之间的差值。关于--hard后面的这个字串,相信不少朋友还有疑问,下面小编就一一解答。    疑问一:该字串从哪里来的?    每次git commit的时候Git都会生成这样一个字串方便做版本管理,可以通过git log来查看每个版本具体commit字串值。    疑问二:进行版本回退的时候如何填写该字串?    其实这个并没有硬性的规定,经过小编测试,这个字串至少是4位,也就是说我们至少需要取commit字串的前4位(4位以下会报错)。其实输入的这个字串是为了确保Git能够准确的找到对应的版本,如果版本中有前4位重复的,那么我们就需要多增加一位,确保Git不会找错了。那么多少位适合呢?如果使用Git时间久了,就会发现,很多操作使用到这个commit的时候都会把它缩略为前7位,因此,我们也可以沿用,使用前7位作为默认位数,当然,如果前7位仍不唯一,就需要输入前8位了。
    命令:git reflog
    一次又一次的回退操作已经使得我们忘乎所以,不知不觉已经快回退到最初的版本了,但这时候我们又怀念起了新版本的好,想要回去,可是git log中已经没有新版本的任何足迹了,我们还回的去吗?答案是肯定的,凡走过必留下痕迹,Git也同样为我们留下了蛛丝马迹。
git reflog是Git提供给我们记录命令历史,commit和reset都在被记录之列。通过git reflog,我们发现了最后一次提交的commit的字串,有了它我们是不是可以找回最新的版本呢?抱着怀疑的态度我们进行了尝试,再看下git log,哇塞,居然回到了进行回退前的状态,这样一来我们岂不是可以自由徜徉在各个版本之间了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭