当前位置:首页 > 芯闻号 > 充电吧
[导读]我们使用任何的版本管理工具,原因无外乎就是想要记录文件新增、修改、删除等相关操作,当我们修改文件出现错误的时候,可以及时回到没有出错的“备份”文件。当然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,哇塞,居然回到了进行回退前的状态,这样一来我们岂不是可以自由徜徉在各个版本之间了。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭