实例讲解git revert命令原理及使用

实例讲解git revert命令原理及使用1、使用gitrevert6fec45命令使版本退回到版本3运行这个命令后,a.txt内容为:查看git日志如下:2、使用gitrevert3e

大家好,欢迎来到IT知识分享网。

我们在使用git时,经常用到版本回退的功能。git中提供了两个命令一个是reset,另一个是revert。其中reset命令比较好理解,直接git reset 版本哈希编码即可恢复到指定的版本号,因为这种操作无法再回复撤消版本号后面的版本(比如 我们软件经过了a->b->c,如果我们reset 到b的话,就再也无法找到c这个版本了)而且日志也同时恢复到了版本2,因此在实际工作中通常不建议使用reset。

revert命令是撤消提交(原理就是复制要撤消版本前的那一个版本来做为新的提交),这种操作非常巧秒的保留了每一个版本,因此这个在版本撤消中一直使用。

下面我们实例说明revert的实现原理和效果:

比如我们有以下版本流程:

实例讲解git revert命令原理及使用

上图中的几个箭头说明:

HEAD旁边的箭头是指当前HEAD指针指向4这个版本。

4左边的箭头是代表4这个版本的父版本是3,以此类推3的父版本是2,2的父版本是1。

之所以这样,这是git的底层逻辑决定的。因为git每执行一次commit,相当于提交了个commit tree,除了第一次commit tree的父引用为空外,以后每一次commit都会记录着上一次commit tree的指针地址。也正因为此,我们的git流程才可以方便的执行reset或revert指令。

我们这里做一下测试来学习revert的工作原理:

本例我们先创建一个空的仓库,然后创建一个a.txt文档,分别进行如下操作增加行1内容:111

git add a.txt

git commit -m “1”

增加行2内容:222

git add a.txt

git commit -m “2”

增加行3内容:333

git add a.txt

git commit -m “3”

增加行4内容:444

git add a.txt

git commit -m “4”

以上就是我们进行了4次提交,分别是”1″,”2″,”3″,”4″,所以当前HEAD 指向”4″这个提交。

实例讲解git revert命令原理及使用

我们这时查看git 日志的效果如下:

实例讲解git revert命令原理及使用

假设我们现在想要退回到版本2,那么我们需要两步:

1、使用git revert 6fec45 命令使版本退回到版本3(这个你也可以理解为撤消6fec45这个commit)

运行这个命令后,a.txt内容为:

实例讲解git revert命令原理及使用

查看git 日志如下:

实例讲解git revert命令原理及使用

2、使用git revert 3ee3df 命令使版本退回到版本2(也可以理解为撤消3ee3df这个commit)

本步骤说明如下:

因第1步我们达到的效果就是复制一个新的版本,其状态就是版本”3″的那次提交。因此我们可以再进行git revert 3ee3df命令,这样同步骤1一个道理,执行后,我们就得到了”2″的复制版本。即状态达到了”2″这个版本。

这时我们查看a.txt文件内容,正如我们所料,内容如下图所示:

实例讲解git revert命令原理及使用

我们查看git日志,可以看到,同样执行revert 3ee3df后,其实是新增加了一个commit。

实例讲解git revert命令原理及使用

总结一下,那么到下面,我们的版本流程应该是这样:

实例讲解git revert命令原理及使用

如果这次我们想退回到版本4 ,那应该怎么做呢?很简单,只需要先revert 6那个提交,然后再revert 5那个提交即可。

实例讲解git revert命令原理及使用

实例讲解git revert命令原理及使用

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/65293.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信