1、第一种情况:还没有push,只是在本地commit

git reset --soft|--mixed|--hard

git push develop develop --force (本地分支和远程分支都是 develop)

这里的就是每次commit的SHA-1,可以在log里查看到:

--mixed 会保留源码,只是将git commit和index 信息回退到了某个版本.

--soft 保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.

--hard 源码也会回退到某个版本,commit和index 都会回退到某个版本.(注意,这种方式是改变本地代码仓库源码)

当然有人在push代码以后,也使用 reset --hard 回退代码到某个版本之前,但是这样会有一个问题,你线上的代码没有变,线上commit,index都没有变,当你把本地代码修改完提交的时候你会发现全是冲突.....这时换下一种。

2、commit push 代码已经更新到远程仓库

对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用到下面的命令

git revert

revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新。

注意:git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit,看似达到的效果是一样的,其实完全不同。

1、上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会。

2、如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里。

3、reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的。

git 撤销全部的commit_Git 撤销 Commit相关推荐

  1. git 撤销全部的commit_git 撤销commit

    如果不小心commit了一个不需要commit的文件,可以对其进行撤销. 先使用git log 查看 commit日志 Python代码   commit 422bc088a7d6c5429f1d07 ...

  2. git 撤销全部的commit_git撤销commit的三个方法

    撤销commit有很多方法,个人比较推荐用 reset 或rebase -i,底下将会同时介绍 revert 和 reset 的方法. commit 如下 A -> B -> C -> ...

  3. git 撤销全部的commit_git如何撤销commit的方法(未push)

    撤销commit一般用git reset ,语法如下: git reset [ --mixed | --soft | --hard] [] 1.使用参数--mixed(默认参数),如git reset ...

  4. Git撤销对远程仓库的push 或 Git撤销对远程仓库的commit提交

    Git撤销对远程仓库的push 或 Git撤销对远程仓库的commit提交 [一]撤销push 执行 git log 查看日志,获取需要回退的版本号 执行 git reset –-soft <版 ...

  5. git 撤销全部的commit_git 撤消操作所有

    概念 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的. 暂存区:已经 git add xxx 进去,且未 gi ...

  6. 【Git笔记3】关于撤销、删除、恢复的那些事儿

    在跻身于"国庆抢票大战"的我们,不要忘记学习,今天接着上篇 [Git笔记2]必知习惯和如何版本回退,继续开干!一起来瞅瞅如何撤销没有add的修改,如何撤销以及add到暂存区的修改, ...

  7. Git 版本回退和修改撤销

    文章目录 前言 一.版本回退 (撤销commit修改) 版本查看 临近版本回退 指定版本回退 git reset的模式 二.修改撤销 在工作区的修改撤销(撤销直接修改) 在暂存区的修改撤销(撤销add ...

  8. git amend详解和撤销

    git amend 详解和撤销 git amend详解 git amend 作用 git amend如何撤销 git amend详解 git amend 作用 git 在现在的开发中使用频繁,解决了很 ...

  9. GIT 新手入门-4种撤销操作

    一.git撤销未add的更改 原理:git checkout -- README.md拉取暂存区or版本库文件,并将其替换成工作区文件 撤销工作区已经修改的某一个文件         $ git ch ...

最新文章

  1. postman显示服务器错误是什么原因,Postman 500内部服务器错误api错误
  2. linux命令-- 抓包
  3. 数据结构 -- 搜索二叉树
  4. 在.NET Core类库中使用EF Core迁移数据库到SQL Server
  5. 虚拟机如何上网以及互ping问题
  6. 在每天下午五点使用计算机,邮件攻击主要是_每天下午5点使用计算机_apt的攻击目标一般不是...
  7. python七段数码管倒计时_python实现七段数码管和倒计时效果
  8. 最大公约数和最小公倍数问题(洛谷P1029题题解,Java语言描述)
  9. 【C语言】赋值运算中的类型转换
  10. NFNet的学习笔记
  11. 网页设计个人主页代码
  12. 谷歌插件无法显示在地址栏右侧
  13. CDN是什么?为何要用CDN加速网站?
  14. 290页11万字数字农业农村项目规划建设方案2022
  15. 趣图 | 念念不忘必有回响
  16. 中国移动“梧桐杯”大数据应用创新大赛强势来袭三大赛道再续辉煌
  17. 从Spring源码探究IOC初始化流程
  18. 快速寻找研究方向+发文章的方法!!按头安利!
  19. 复旦大学附属肿瘤医院请“牛顿”打造智慧医疗
  20. 不能换行 俄语 前端h5_H5兼容问题及解决方法

热门文章

  1. 平衡二叉排序树(完整案例详解及完整C代码实现)
  2. oracle中做数据字典,oracle中数据字典是干嘛用的啊
  3. ios 点击出现另外一套tabbar_iOS开发中TabBar再次点击实现刷新效果
  4. 三星a60android9,三星A6058官方国行安卓9固件rom线刷升级包:CHM-A6058ZMU2BSC9
  5. linux socket API / listen() 两个队列以及第 2 个参数的作用
  6. linux socket API / bind
  7. postman 设置请求编码_Postman使用
  8. 2个网页跳来跳去_成为搜索产品经理(2):认识网络爬虫
  9. 开放原子超级链动态内核上线,十分钟可搭建一条区块链
  10. python列表冒泡排序_python – 冒泡排序已排序列表