Git,我们不断的修改、提交,有的时候,我们有了好的想法,会想回退到没有提交之前的版本,这个时候我们怎么做呢,我们来看一下!

首先:我们先来给readme.txt增加一行内容

$ echo "git is a distibuted version1.2 control system" >> readme.txt
$ git add readme.txt
$ git commit -m "第二个版本"

执行完这三条命令,我们已经增加了一行内容并把它提交了,我们可以用 git log 来看一下提交记录

$ git log
commit 472228e5df0e43d6d573bee5f0eba1bb173618ba
Author: uniquemei <xxxx@qq.com>
Date:   Wed Jul 13 09:36:42 2016 +0800

    第二个版本

commit 928f4b4230cf9440d61e5d7ef2dc70a8c5b10eb6
Author: uniquemei <xxxx@qq.com>
Date:   Tue Jul 12 18:01:35 2016 +0800

    wrote a reademe file

可以看到我们提交了两次,这样看,我觉得有点不舒服,想美化一下,来美化一下

$ git log --pretty=oneline
472228e5df0e43d6d573bee5f0eba1bb173618ba 第二个版本
928f4b4230cf9440d61e5d7ef2dc70a8c5b10eb6 wrote a reademe file

这样,我们看着舒服简单多了,那么现在我想回退到第一次提交的那个版本,看看之前的内容,怎么办呢?

$ git reset --hard HEAD^
HEAD is now at 928f4b4 wrote a reademe file

现在,我们就回退到没有提交之前的那个版本了,我们可以来查看一下里边的内容

$ cat readme.txt
Git is a version control system

这是我们没有添加内容之前的版本。

现在我又想回到我最新的版本了,怎么办?首先,我们得知道新版本的commit_id,用 git reflog 可以查看

$ git reflog
928f4b4 HEAD@{0}: reset: moving to HEAD^
472228e HEAD@{1}: commit: 第二个版本
928f4b4 HEAD@{2}: commit (initial): wrote a reademe file

那么,我们要由过去回到未来了

$ git reset --hard 47222
HEAD is now at 472228e 第二个版本

来,我们在来查看一下内容

$ cat readme.txt
Git is a version control system
git is a distibuted version1.2 control system

版本已经又回到我们最新的版本了!

更多知识,请查看廖雪峰大神的网站

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐