0


git中revert的最简单、最直观的理解

引言

作为初入职场的小萌新,你刚学会了怎么提交代码,就很潇洒的把自己的test-bug-fix的代码提交到了将要发布到线上生产环境的分支上,嗯……我猜你要挨打了。下辈子小心点,这次没关系,我们有revert。

关于revert最最最最最最最最好理解的解释

解释版本一:我最后一次提交的代码是正确的,然后你提交了自己的错误代码,revert就是将你改的所有代码剔除,然后生成一个最后一次提交的正确的那时候的版本;注意哦这个新生成的版本跟你提交前的版本——最后一次提交的代码是一样的哦~
如果第一个解释没看懂,请看第二个:
解释版本二:我们的组长最后一次修改完bug后提交了代码(版本A),准备发到线上去,审核已经通过了,你突然告诉他你说你刚才提交了代码(版本B),还是自己测试的代码,不健壮……组长和蔼的说没事,这次扣300个元子长长记性,下次注意。然后只见组长潇洒的打开了命令窗口输入了

git revert

开头的神秘代码,把你的钱揣进了自己口袋。具体发生了什么呢,其实就是组长使用revert命令将你的提交(版本B)剔除了,然后生成了新的版本(版本C),此版本(版本C)里的代码跟最初的版本(版本A)是一样的。
这下很清楚了 吧,赶紧来看操作深入理解

操作案例

初始化一个git项目:

git init 项目名(文件夹名)

在这里插入图片描述
新建文件A.txt并提交:

touch A.txt
gitadd ./
git commit -m"项目init"

查看日志:

git log

在这里插入图片描述
可以看到我们已经成功提交了。
然后修改文件A.txt,在里面添加两行字,然后提交;

vim A.txt
gitadd A.txt
git commit -m"A.txt的 版本A"

此时查看日志:提交修改成功,我们可以将此作为版本A
在这里插入图片描述
查看此版本的文件内容:

cat A.txt

,可以看到只有一行,两个edit;然后看文件夹,只有一个A.txt
在这里插入图片描述

然后我添加文件B.txt,再加一行内容,然后提交

touch B.txt
vim B.txt
gitadd ./
git commit -m"add B.txt 版本B"

然后查看日志

git log

,查看文件内容

cat B.txt

,查看文件夹中文件

ls

,可以看到提交成功了,而且我新加了文件B.txt并且在里面添加了内容BBBBB;
在这里插入图片描述

这个B.txt是误提交,我不要这次提交,应该回到之前版本A;
执行:

git revert 14345c165b488d2e616a3793ec5fd158b21bb91a

然后会弹出一个vim编辑窗口,这时我们输入新的提交的message即可。也就是剔除了版本B的、内容跟版本A一样的新版本——版本C的message;如图生成的message我不动,在其后面我输入:revert版本C:
在这里插入图片描述
保存退出,可以看到我们已经revert成功了:
在这里插入图片描述
究竟是不是这样的呢,我们看日志:

git log

可以看到确实是有版本A。也有版本B,也有版本C;

在这里插入图片描述

而且版本C也就是现在的版本内容应该跟版本A是一样的,也就是只有A.txt,没有我的B.txt的文件,我们看一下这个版本C的提交是不是这样:

git show 2e0b4c6

在这里插入图片描述
可以看到只有A.txt文件的操作。安全下车,下次注意,可再别用了,下课~~~~

标签: git gitlab github

本文转载自: https://blog.csdn.net/qq_44444470/article/details/132494196
版权归原作者 户伟伟 所有, 如有侵权,请联系我们删除。

“git中revert的最简单、最直观的理解”的评论:

还没有评论