2020年9月12日 / 22次阅读
Git
用了这么久的git,其实没怎么用过git reset命令,用本文来学习总结一下吧。
git reset命令可以修改HEAD指针,让你穿越时空,回到以前的某个commit后的状态。
$ git reset --hard HEAD^
回退一个commit,已经commit的修改和还未commit的修改,都会丢失,--hard参数确保了他们会丢失,HEAD^表示前一个commit,也可以写成HEAD~1。
HEAD^^表示前2个commit,也可以写成HEAD~2,以此类推。
或者直接写commit id
$ git reset --hard <commit_id>
这个GIF完美的展示了git reset --hard命令的效果:
git reset --hard
--hard比较猛,--soft就很温柔:
$ git reset --soft HEAD^
将最近一次commit回退,所有修改回退到stage状态,并且保持工作区不动。
下面这个GIF,画出了git resset --soft命令的美:
git resset --soft
git reset命令还有一个--mixed参数,这是默认的动作。
$ git reset .
将所有staged的内容,全部退回到工作区(unstage状态)。
$ git reset --mixed HEAD~5
回退5个commit,将所有修改都放在工作区。
最后放一张图来总结一下:
git reset命令
git reset是直接回退,不改变branch。git checkout是通过改变branch的方式,变相实现版本回退。
本文链接:https://www.maixj.net/ict/git-reset-23907
《git reset命令》有1条留言
©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。
默认就是 git reset --mixed,为什么是mixed这个词? [ ]