git 的版本回滚操作

git版本含义

git中版本的意思就是commit,每次commit就是一个版本,所以每次git commit -m “some msg”是必须的。这相当于给我们的版本命名了。


关键代码:

在各种git commit之后,使用 git log 来进行查看自己版本状态,发现其中包含了很多自己的commit 信息,关键的是长长的hash码以及后面你写的msg(可以加上选项--pretty=oneline,简化输出,退出按q即可)。

touch 1.file
git add --all
git commit -m “add 1”
touch  2.file 
git add --all
git commit -m "add 2"
git log --pretty=oneline

输出结果:

efca973bf99228ac1f78d75d89f02a0d3bc0561e add 2
d59acbcf242f573dce99f7ad9af99c4e40e59718 add 1
d5193dc3564817a3d882d914e3e748f946380c5d  dd

回滚的两种方式:
方法一:

  git reset --hard HEAD^

一个^符号表示当前的上一个版本,两个就是上上个版本。。。

方法二:

  git reset --hard id

id就是git log中得到的版本号就是那段长长的hash码,不用复制完,取前边几位就可以了。

补充:
选项的区别:

选项 作用
-- hard 直接改变当前文件中以及版本号的状态。真正的回滚回去
-- soft 只是改变当前的版本号,没有改变当前的文件状态
--mix 改变了head 以及 index 但是不改变当前的文件状态

简单的来讲,你自己修改了文件就是改变文件状态,输入Git add之后会改变当前项目的index,而Git commit 会改变head,Git push会拿你本地的head和远程的来比,那个版本高就听谁的,一样高又不一样就会有冲突。回滚顾名思义就是反操作而已,对着看就能看出规律来。


后悔药:

回滚回去之前的版本后,我后悔了,那么就可以用以下的操作:
git reflog
就可以看到之前的因回滚而消失的版本,通过此命令就可以查到相应的id号,就可以直接git reset --hard <id> 就可以回滚回去了。

有选择性的后悔药:

比如我不想回滚整个版本,只想回滚回之前版本的某一个文件,如下操作:

git checkout HEAD~1 <FILE NAME>

----END----

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容