本地合并后回退_git 版本回退

柔光的暖阳◎ 2023-01-07 10:04 296阅读 0赞

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

版本的撤销分类:

  • 撤销新增的工作区内容 > 数据回到 > 删除(因为还没有被git 标识)
  • 撤销工作区的内容 > 数据回到 > 本地仓库的内容
  • 撤销暂存区的内容 > 数据回到 > 工作区
  • 撤销本地仓库的内容 > 数据回到 > 仓库历史记录的某一个版本内容
  • 撤销远程仓库的内容 > 数据回到 > 远程历史仓库的某一个版本内容

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

1 撤销工作区内容

应用场景

  1. 开发到中途,发现需求已经不需要做了,保留之前的业务
  2. 需要切换到别的分支进行开发,但是此工作区的业务代码已经没用了

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

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

  1. rm \[file1\] \[file2\] ...

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

  1. > 整个版本回归:
  2. cd到该项目的根目录,然后:git checkout ./

8418a2ff57848ec08b499b0217353096.png

  1. > 部分文件回归:file:可以是具体的文件,也可以文件夹
  2. git checkout \[file1\] \[file2\] ....

7608539ef54bba9ca0b4e054fd5ac11f.png

2 撤销暂存区的内容

  1. 应用场景:
  2. a. 需要提交代码到本地仓库的时候,发现提交多了,某些文件在当前版本不提交
  3. b. 这次版本需要提交的代码很多,只有小部分不需要提交的,为了快速的提交,先git add ./ (全部提交到暂存区),然后再将不需要的撤回到工作区(此次提交不包括在内)

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

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

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

ed7caf4120259fc853622aa4b7ef6687.png

3 撤销本地仓库的内容

应用场景:

  1. a. 某一天后的版本出现了问题或者不再需要了,我们需要还原到某个一版本的数据(慎用)
  2. b. 还原到某一个基础版本,然后新建分支进行开发(常用)

核心命令:git reset

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

b96cab663b3350f6904734e0bd3a78e2.png

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

-- soft ,只是重置指针

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

eg,当前的分支版本:

c32889a4030be494b706e2e4a2f4ae7d.png

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

  1. git reset --hard 1d2f69agit push -f

f02723504a75caff378ee3ac605b3385.png

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

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

5eb3f146316aeff60eb0e258205e9f5d.png

发表评论

表情:
评论列表 (有 0 条评论,296人围观)

还没有评论,来说两句吧...

相关阅读

    相关 git版本退

    工作中偶尔会遇到误把代码提交到正式环境分支需要撤回的情况,为了保证分支提交记录的干净,我们不能手动还原代码然后撤回,需要利用git机制进行撤回,这里记录下撤回方法 1.查询到

    相关 git 版本退

    前言: 使用git管理项目开发的过程中经常会碰到这种情况:某次提交已经push到了远程仓库,可是突然需要回退代码,怎么将远程代码库回滚呢? 不推荐这样做:在网上看到大部分人给