git 撤销全部的commit_Git 撤销 Commit
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相关推荐
- git 撤销全部的commit_git 撤销commit
如果不小心commit了一个不需要commit的文件,可以对其进行撤销. 先使用git log 查看 commit日志 Python代码 commit 422bc088a7d6c5429f1d07 ...
- git 撤销全部的commit_git撤销commit的三个方法
撤销commit有很多方法,个人比较推荐用 reset 或rebase -i,底下将会同时介绍 revert 和 reset 的方法. commit 如下 A -> B -> C -> ...
- git 撤销全部的commit_git如何撤销commit的方法(未push)
撤销commit一般用git reset ,语法如下: git reset [ --mixed | --soft | --hard] [] 1.使用参数--mixed(默认参数),如git reset ...
- Git撤销对远程仓库的push 或 Git撤销对远程仓库的commit提交
Git撤销对远程仓库的push 或 Git撤销对远程仓库的commit提交 [一]撤销push 执行 git log 查看日志,获取需要回退的版本号 执行 git reset –-soft <版 ...
- git 撤销全部的commit_git 撤消操作所有
概念 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的. 暂存区:已经 git add xxx 进去,且未 gi ...
- 【Git笔记3】关于撤销、删除、恢复的那些事儿
在跻身于"国庆抢票大战"的我们,不要忘记学习,今天接着上篇 [Git笔记2]必知习惯和如何版本回退,继续开干!一起来瞅瞅如何撤销没有add的修改,如何撤销以及add到暂存区的修改, ...
- Git 版本回退和修改撤销
文章目录 前言 一.版本回退 (撤销commit修改) 版本查看 临近版本回退 指定版本回退 git reset的模式 二.修改撤销 在工作区的修改撤销(撤销直接修改) 在暂存区的修改撤销(撤销add ...
- git amend详解和撤销
git amend 详解和撤销 git amend详解 git amend 作用 git amend如何撤销 git amend详解 git amend 作用 git 在现在的开发中使用频繁,解决了很 ...
- GIT 新手入门-4种撤销操作
一.git撤销未add的更改 原理:git checkout -- README.md拉取暂存区or版本库文件,并将其替换成工作区文件 撤销工作区已经修改的某一个文件 $ git ch ...
最新文章
- postman显示服务器错误是什么原因,Postman 500内部服务器错误api错误
- linux命令-- 抓包
- 数据结构 -- 搜索二叉树
- 在.NET Core类库中使用EF Core迁移数据库到SQL Server
- 虚拟机如何上网以及互ping问题
- 在每天下午五点使用计算机,邮件攻击主要是_每天下午5点使用计算机_apt的攻击目标一般不是...
- python七段数码管倒计时_python实现七段数码管和倒计时效果
- 最大公约数和最小公倍数问题(洛谷P1029题题解,Java语言描述)
- 【C语言】赋值运算中的类型转换
- NFNet的学习笔记
- 网页设计个人主页代码
- 谷歌插件无法显示在地址栏右侧
- CDN是什么?为何要用CDN加速网站?
- 290页11万字数字农业农村项目规划建设方案2022
- 趣图 | 念念不忘必有回响
- 中国移动“梧桐杯”大数据应用创新大赛强势来袭三大赛道再续辉煌
- 从Spring源码探究IOC初始化流程
- 快速寻找研究方向+发文章的方法!!按头安利!
- 复旦大学附属肿瘤医院请“牛顿”打造智慧医疗
- 不能换行 俄语 前端h5_H5兼容问题及解决方法
热门文章
- 平衡二叉排序树(完整案例详解及完整C代码实现)
- oracle中做数据字典,oracle中数据字典是干嘛用的啊
- ios 点击出现另外一套tabbar_iOS开发中TabBar再次点击实现刷新效果
- 三星a60android9,三星A6058官方国行安卓9固件rom线刷升级包:CHM-A6058ZMU2BSC9
- linux socket API / listen() 两个队列以及第 2 个参数的作用
- linux socket API / bind
- postman 设置请求编码_Postman使用
- 2个网页跳来跳去_成为搜索产品经理(2):认识网络爬虫
- 开放原子超级链动态内核上线,十分钟可搭建一条区块链
- python列表冒泡排序_python – 冒泡排序已排序列表