源码管理三:版本回退

在版本控制系统中,我们可能提交过好多次的版本。要想回退到之前的版本,必须得知道我们提交过的版本记录,该如何获取提交的版本记录呢?

用命令:git log 

用法如下:

zhanggeng:git_learning (master)$git log
commit 1b954b4b03f44d797a4ba8301507614f1a5cabee
Author: zhanggeng <zhanggengdyx@sina.com>
Date:   Thu Jan 29 22:24:19 2015 +0800

    thrid commit : girl friend

commit 421f96170db4af6140a66fecc86cac3550f5a864
Author: zhanggeng <zhanggengdyx@sina.com>
Date:   Thu Jan 29 22:23:13 2015 +0800

    second : why so

commit c520daccf0d363786b54e33b72ee6708cf346f4a
Author: zhanggeng <zhanggengdyx@sina.com>
Date:   Thu Jan 29 22:20:04 2015 +0800

    first commit : for cat txt

commit ab88d5c302c452ca89004d5b67ad359bdcf51650
Author: zhanggeng <zhanggengdyx@sina.com>
Date:   Thu Jan 29 22:00:02 2015 +0800

    thrid commit : do what
:

输出信息太多,加上
--pretty=oneline参数,可以简化输出:

命令使用如下:

zhanggeng:git_learning (master)$git log --pretty=oneline
1b954b4b03f44d797a4ba8301507614f1a5cabee thrid commit : girl friend
421f96170db4af6140a66fecc86cac3550f5a864 second : why so
c520daccf0d363786b54e33b72ee6708cf346f4a first commit : for cat txt
ab88d5c302c452ca89004d5b67ad359bdcf51650 thrid commit : do what
4811639f3a56e2849958c2818f8085f3f8299b50 second commit : think
97b0b9fc81bf3d5ec819a307b876e57c0a866e28 first commit: learn git again

在Git中,用HEAD表示当前版本,也就是最新的提交1b954b4b03f44d797a4ba8301507614f1a5cabee,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

当前版本在thrid commit: girl friend ,想退回到上一个版本,那么就用:HEAD^.

zhanggeng:git_learning (master)$git reset --hard HEAD^
HEAD is now at 421f961 second : why so

当我回退到了版本:thrid commit : girl friend,后悔了,想恢复到新版本怎么办?
当我用$ git reset --hard HEAD^回退到旧版本想回到新版本,就必须知道新版本的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:

zhanggeng:git_learning (master)$git reflog
421f961 HEAD@{0}: reset: moving to HEAD^
1b954b4 HEAD@{1}: reset: moving to 1b95
c520dac HEAD@{2}: reset: moving to HEAD^^
1b954b4 HEAD@{3}: reset: moving to HEAD^
e5de772 HEAD@{4}: commit: four commit : error
1b954b4 HEAD@{5}: commit: thrid commit : girl friend
421f961 HEAD@{6}: commit: second : why so
c520dac HEAD@{7}: commit: first commit : for cat txt
ab88d5c HEAD@{8}: reset: moving to HEAD^
a8798fe HEAD@{9}: commit: four commit: what?
ab88d5c HEAD@{10}: commit: thrid commit : do what
4811639 HEAD@{11}: commit: second commit : think
97b0b9f HEAD@{12}: commit (initial): first commit: learn git again


总之:Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值