git 回退_git 版本回退

在日常开发中,版本的控制,处理新建分支,新增版本,还有版本的回退,也常常被使用,妙用版本的回退,会让你的工作更加得心应手。

版本的撤销分类:

  • 撤销新增的工作区内容 > 数据回到 > 删除(因为还没有被git 标识)

  • 撤销工作区的内容 > 数据回到 > 本地仓库的内容

  • 撤销暂存区的内容 > 数据回到 > 工作区

  • 撤销本地仓库的内容 > 数据回到 > 仓库历史记录的某一个版本内容

  • 撤销远程仓库的内容 > 数据回到 > 远程历史仓库的某一个版本内容

PS:其中,这些撤销都支持部分撤销或者全部撤销

1 撤销工作区内容

应用场景

  1. 开发到中途,发现需求已经不需要做了,保留之前的业务

  2. 需要切换到别的分支进行开发,但是此工作区的业务代码已经没用了

    PS:如果此工作区的代码还有用,就使用git stash 暂存此代码,而不是撤销了

1.1 如果是新增的工作区内容,还没有add被识别,则只能删除

    rm [file1] [file2] ...

1.2 如果已经被git track,则可以通过git checkout 进行版本回归

    >  整个版本回归:

        先cd到该项目的根目录,然后:git checkout ./

c8c899167da4c56e249bbfa5c67d09cb.png

    > 部分文件回归:file:可以是具体的文件,也可以文件夹

        git checkout [file1] [file2] ....

5f70e8527733ad0af8f6bc73a1cebc47.png

 2 撤销暂存区的内容

    应用场景:

        a. 需要提交代码到本地仓库的时候,发现提交多了,某些文件在当前版本不提交

        b. 这次版本需要提交的代码很多,只有小部分不需要提交的,为了快速的提交,先git add ./ (全部提交到暂存区),然后再将不需要的撤回到工作区(此次提交不包括在内)

2.1 将部分代码撤回到工作区(文件不删除) 

    git reset --mixed [file1] [file2] ....

   eg:工作区内,除了a.txt文件,其他全部提交

fae85101b567602573eaaee6db165989.png

3 撤销本地仓库的内容

  应用场景:

    a. 某一天后的版本出现了问题或者不再需要了,我们需要还原到某个一版本的数据(慎用)

    b. 还原到某一个基础版本,然后新建分支进行开发(常用)

核心命令:git reset

查看一下git reset的帮助文档,我们主要用到圈出来的三种,常用也是这三种

87d1ffcf10751847b4bfd7c0f965a16a.png

--mixed ,默认的参数,重置指针跟暂存区

-- soft ,只是重置指针

-- hard ,指针,暂存区,工作区全部重置

eg,当前的分支版本:

66cfb1fdc059288c2f4fdbd99ffee2c7.png

我强制回退到 1.1.0 的版本,进行强制提交覆盖远程master分支

git reset --hard 1d2f69agit push -f

7ff9a60168159dd4fe94331b8c17e9d7.png

PS:这个虽然是回退了,但是会1.1.0之后的分支去掉,除非确定是可以删除,否则不建议这样回退。通过记住日志的id,我们还可以回到任意分支

最佳的方法:我们新建一个分支,进行回退->提交

7b943242dd55d4096c4400dfed28c2ac.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值