Git的学习笔记3

git各阶段版本回退命令

在这里插入图片描述

  1. 工作区的代码改动不想要了(git add之前)

在这里插入图片描述
在这里插入图片描述
在git add之前 ,想要放弃刚刚做的修改,回到修改前的状态
可以使用如下命令:

git checkout -- main.cpp

由于还没有add以及commit,本地仓库的main.cpp仍然是修改前的main.cpp,只有工作区的main.cpp被改动了。这条命令的意思是,用本地仓库的main.cpp覆盖工作区的main.cpp

发现原来的注释也不见了
在这里插入图片描述

  1. git add以后放入暂存区的代码修改不想要了
    在这里插入图片描述
    已经提交到暂存区,我们现在需要放弃暂存区的修改
    在这里插入图片描述
    使用git reset HEAD的方式放弃暂存区的修改,
    其中git reset HEAD表示放弃暂存区所有的修改,
    git reset HEAD 文件名表示放弃暂存区某个文件的修改
    在这里插入图片描述

此时工作区的文件还是处于被修改状态
可以通过git checkout – 文件名的方式放弃工作区的修改

  1. git commit提交到本地仓库的代码不想要了
    在这里插入图片描述
    git log查看提交日志

在这里插入图片描述
把HEAD指针指向原来的远程仓库上面,commi id为efd7e的状态,其实没有删除我们刚才的提交,这仅仅只是修改的HEAD指针的指向,然后就恢复了commit前的状态。文件main.cpp也复原了。
在这里插入图片描述

  1. 远程仓库的代码修改不想要了

在这里插入图片描述
github上也显示了完成
在这里插入图片描述

回退操作:
我们先修改本地分支的HEAD指针到未修改的状态
在这里插入图片描述
git push origin main 更新不了,一定是要本地仓库比远程的新
这时我们可以用-f强制推送到远程分支,用落后的分支覆盖远程的分支。注意,强制推送前要用git log查看是否有别人也提交了,如果别人提交了,自己再用落后分支覆盖远程分支,这就会影响别人的修改

总结

在这里插入图片描述

git checkout -- 在git add之前,把工作区的代码用版本库中的代码覆盖掉,注意命令中的--不能
去掉,否则成切换分支的命令了
git reset HEAD 把git add之后,暂存区的内容全部撤销
git reset --hard commitid 把提交到本地仓库中的代码改动进行回退
git reflog 查看HEAD指针的改动日志
git push -f 强制推送本地仓库代码到远程仓库
git diff HEAD -- 查看工作区file文件和仓库中该文件最新版本的代码有什么区别
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值