git-2:git版本库回退

修改一下readme.txt文件

echo git is a powerful version control system > readme.txt  #添加powerful

git status        #查看git仓库当前的状态

上面的输出表示readme.txt被修改了但是还没有提交

git diff readme.txt                  #查看更改信息

再次提交这个文件还是两步:

git add readme.txt

git commit -m 'second submission'

git status 

已经没有需要提交的修改了

 

下面进行版本库回退:

git log              #查看提交(commit)的历史记录

第二次提交显示在了最前面

git log还可以加参数  --pretty=oneline可以简化显示

git log --pretty=oneline 

这个是commit的id,用SHA1计算出来的一个非常大的数字,用十六进制表示。因为git是分布式的,可能多人在一个版本库工作,所以不能用1 2 3 4 5……这样的数字。

在git中HEAD表示当前版本,是最新的提交。上一个版本是HEAD^,HEAD^^,HEAD^^^…依次类推。如果太多了,可以用数字表示,向前100个版本就是HEAD~100。

git reset --hard HEAD^   #退回到上一个版本。

回退后再查看,readme.txt已经回到上一个版本了。现在只剩这个版本了。

但是执行了这个命令,有后悔了咋办。如果窗口还没有关掉,向上找到上一个版本的commit_id。

然后执行git reset 命令

 

git reset --hard e39612d           #前几位就可以了

readme.txt又回到了second submission 版本了。

这实际上是一种指针操作。

HEAD 最先指向了second submission ,然后回退版本后,又指向了first submission。然后会把工作区的文件更新了。所以HEAD指向哪个版本号, 当前版本就定为在哪。

 

通过日志恢复版本库

如果确实回退到了,first submission,并且关了窗口,不能从窗口拿到commit_id的时候。

可以使用 git reflog 命令。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值