本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告

Git教程(三)版本库回滚操作

发布:TangLu2018-4-17 12:26分类: 服务部署 标签: git github

Git在工作时会把每一次的commit进行一个快照,然后通过HEAD指针指向到一个新的分支上去(也就是说HEAD代表了当前最新快照的位置),切换分支后又会在分支上生成一个指针,整个过程如下图:有master和new两个分支,切换到哪个分支,HEAD就指向到哪个分支最新的快照上

githuigun1.png

要进行版本回滚的话使用的命令是git reset。git reset的工作方式

在Git中使用HEAD表示当前的版本,也就是最新一次的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,如果需要回退的版本太多了,比如回退20次,可以写成HEAD20。 

git reset --soft SHA1  #所回滚版本之后的版本会放到暂存区中,还可以通过git reset SHA1的方式回到未来版本中,所以回退之前应该记下对应的Hash值
git reset --hard SHA1  #会删除掉所回滚版本之后的版本,无法通过git reset SHA1回到未来版本

如果某条commit的Hash发生了变化,比如某一个commit被分解成了多个commit,那么通过git log查看时就无法看到那条分解之前的commit的Hash值了,这个时候需要恢复的话就要用到git reflog命令,该命令可以看到每一次导致commit发生变化时的操作情况并记录当时的Hash值(如果是通过--hard回退了版本又后悔了的话可以用这个命令恢复)。

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《Git教程(三)版本库回滚操作
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-409.html  [生成短网址]

已有 0/823 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~