首页 > 其他分享 >git reset到提交前的状态

git reset到提交前的状态

时间:2022-10-11 16:57:39浏览次数:78  
标签:reset 需求 git 提交 push commit

有时候,我们用Git的时候有可能commit提交代码后,发现这一次commit的内容是有错误的,那么有两种处理方法:

1、修改错误内容,再次commit一次 2、使用git reset 命令撤销这一次错误的commit
第一种方法比较直接,但会多次一次commit记录。
而我个人更倾向第二种方法,错误的commit没必要保留下来。

基础理论知识请查看--Git的基本流程和Git reset的三种模式

实战

好比你的需求(把某字段的注释从“排序“改为了”弹窗顺序“)完成了,你commit后已经push到远程了。

 提交历史

我们先来讨论几种场景:
(1) 你在合并到dev分支进行测试的时候发现有bug。
(2) 产品说这个需求不做了。
(3) 当前分支还有之前的需求push了,但没有合到远程master分支去部署,然而你这次开发的需求又push到同一个分支了,产品要求先把上个需求先上了。

现在想要回退到修改字段注释前,即字段的注释为“顺序“时,我们可以先Reset到上一个提交,即图中的【修改】提交历史处。

 会出现弹窗询问你想要怎么Reset,假如我们的场景是(2)产品说这次的需求不需要了,也就是放弃目前本地的所有改变,那么我们可以选择hard的方式,直接回到你写这次需求前的代码。

 选择Hard等价于命令行 git reset --hard HEAD~1  ,后面1,表示我已经push1次了,这次不想要了, 如果2次,就写2。

 代码会恢复到这次修改前

 同时发现Git的Log里面你的提交历史也重置回去了

 如果你已经push过,那么这时我们需要强制提交到当前分支的远程分支,也就是直接覆盖掉远程这次需求提交的代码。

 

 此操作等价于命令 git push -f origin 分支名字

如果你不强制提交到远程的话,那么当你update的时候会和你之前提交的“弹窗顺序“产生冲突。

 如果你的场景是(3)想要先stash,把之前的写的需求先部署,后面再unstash回来修改这次的需求,没问题后再上线,那么你可以选择Soft Reset。

等价于命令行 git reset --soft HEAD~1

 那么就会回到你commit前的状态(保留你的暂存区和工作目录)

 这时你可以直接修改代码后,再commit再强制提交,或者直接stash,再强制提交,回到上一次没有修改代码提交前,也就是回到注释是“排序“的时候

标签:reset,需求,git,提交,push,commit
From: https://www.cnblogs.com/liaowenhui/p/16779706.html

相关文章

  • Git理论知识
    Git的基本流程介绍Git会有三个区域:(1)WorkingTree当前的工作目录(2)Index/Stage暂存区,和gitstash命令暂存的地方不一样。使用gitaddxx,就可以将xx添加近Stage里面(......
  • uniapp禁止表单重复提交
    1.在根目录下新建common文件并创建common.js文件,代码直接复制粘贴即可。//防止处理多次点击functionnoMultipleClicks(methods,info){//methods是需要点击后......
  • github Push代码失败(被墙)
    1.上https://ipaddress.com/website/ssh.github.com查询ssh.github.com对应的ip 140.82.114.36ssh.github.com2.测试ssh是否可用连上ip [email protected]......
  • git工作原理之记录快照而非差异对比
    文件系统,点击进入快照理解,点击进入......
  • 实习学习--git
    head^~: http://wkevin.github.io/GitChat/gitchat.html#head和head是啥用树举例,在我看来^n是(同一高度)父叔节点间的切换,~n是沿着默认路径向前进,n默认为1gitcommit-a......
  • GitHub 进不去 解决方法
    有用的话点个赞啊国内访问GitHub官网速度太慢,如何加速访问就成了刚需。由于网站位于美国旧金山,所以初始访问GitHub时网络寻址会比较耗费时间,这也是网站打开速度慢的其中一......
  • GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署
      预期目标源代码管理借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等。自动化部署源代码产生变更时(如签入),自动化编译并......
  • GitHub+Hexo 搭建博客网站
       Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Heroku上,是搭建博客的首选框架。配置Githubroot@hello:~/cby#gitco......
  • 经GitHub将kubernetes镜像推送到阿里云
    背景在安装kubernetes时会出现无法访问镜像站的情况,通过GitHub将kubernetes镜像推送到阿里云之后,即可使用阿里云地址引用所需镜像,现已同步镜像5000+,当前还在陆续同步。仓......
  • GitHub不能访问处理
    最近国内访问github.com经常打不开,无法访问。解决Github打不开办法打开网站http://tool.chinaz.com/dns/ ,在A类型的查询中输入github.com,找到最快访问的ip地址,并......