天天看点

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 ./

git 回退_git 版本回退

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

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

git 回退_git 版本回退

 2 撤销暂存区的内容

    应用场景:

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

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

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

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

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

git 回退_git 版本回退

3 撤销本地仓库的内容

  应用场景:

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

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

核心命令:git reset

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

git 回退_git 版本回退

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

-- soft ,只是重置指针

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

eg,当前的分支版本:

git 回退_git 版本回退

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

git reset --hard 1d2f69agit push -f
           
git 回退_git 版本回退

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

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

git 回退_git 版本回退