git reset 与 git revert的区别?
一,git reset的功能:
该命令修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,
说明:
修改后,push到远程仓库时需要使用“git push -f”提交更改
原因:因为我们本地库HEAD指向的版本比远程库的要旧
说明:架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,git revert的功能:
git revert与git reset不同,它复制了一个目标版本(某个想要回退到的历史版本)加在当前分支的最前端。
而git reset是HEAD指针跳到目标版本,但将跳过的版本丢弃掉了。(git log已经看不到,git reflog还是可以看到的)
三,git reset 的例子:
root@kubuntu:/data/git/clog# git log --pretty=oneline
6a1ea30d1f70c747d9f2bb6282b1f6b2e75ccf05 (HEAD -> dev) e
89a1b44dc8c491742382f0cb7d528a5652023ee9 d
c1d316f17dcbe0c8ee42361ffaaa19fa7c8ff616 (master) c
31b4f3173bd46947a671db7a174b4044aca617c1 b
cda25664a84b8a27fedbaf436e302781e51fc0e9 (tag: a) a
7f5d3f71a244920c390b761921687adafcdf8b45 初始化文件
root@kubuntu:/data/git/clog# git reset --hard 31b4f3173bd46947a671db7a174b4044aca617c1
HEAD 现在位于 31b4f31 b
root@kubuntu:/data/git/clog# git log --pretty=oneline
31b4f3173bd46947a671db7a174b4044aca617c1 (HEAD -> dev) b
cda25664a84b8a27fedbaf436e302781e51fc0e9 (tag: a) a
7f5d3f71a244920c390b761921687adafcdf8b45 初始化文件
四,git revert的例子:
当使用revert反做到某个commit时,可能会产生冲突,
这时需要手动解决冲突
看例子:
root@kubuntu:/data/git/clog# git revert -n 31b4f3173bd46947a671db7a174b4044aca617c1
error: 不能还原 31b4f31... b
提示:冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'
提示:命令标记修正后的文件
解决冲突完成后,commit即可:
root@kubuntu:/data/git/clog# git add -A
root@kubuntu:/data/git/clog# git commit -m "解决冲突";
[dev a5aea62] 解决冲突
1 file changed, 3 deletions(-)
五,git reset --hard与 git reset --soft的区别?
--hard : 回退版本库,暂存区,工作区。(因此我们修改过的代码就没了,需要谨慎使用)
--mixed: 回退版本库,暂存区。(--mixed为git reset的默认参数,即当任何参数都不加的时候的参数)
--soft: 回退版本库。
说明:打开reset的帮助文档即可了解:
root@kubuntu:/data/git/clog# git reset -h
用法:git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<提交>]
或:git reset [-q] [<树或提交>] [--] <路径>...
或:git reset --patch [<树或提交>] [--] [<路径>...]
-q, --quiet 安静模式,只报告错误
--mixed 重置 HEAD 和索引
--soft 只重置 HEAD
--hard 重置 HEAD、索引和工作区
--merge 重置 HEAD、索引和工作区
--keep 重置 HEAD 但保存本地变更
--recurse-submodules[=<reset>]
control recursive updating of submodules
-p, --patch 交互式挑选数据块
-N, --intent-to-add 将删除的路径标记为稍后添加
git reset 与 git revert的区别?的更多相关文章
- git reset、git checkout和git revert的区别
这三个git命令都是用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于commit层面,还可以作用于file层面Reset在commit层面,reset通过移除当前分支的一些节点来实现版本回滚; ...
- 代码回滚:git reset、git checkout和git revert区别和联系
git reset.git checkout和git revert是你的Git工具箱中最有用的一些命令.它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用于特定文件. 因为 ...
- Git 相关问题分享,git reset与git revert的区别?
1.如果我在git add 后想要撤销操作,该怎么做? 使用 git rm --cache [文件名/ *] 或者 git reset HEAD, 为什么这个命令也会有效果呢,实际上reset将 HE ...
- git reset soft,hard,mixed之区别深解
GIT reset命令,似乎让人很迷惑,以至于误解,误用.但是事实上不应该如此难以理解,只要你理解到这个命令究竟在干什么. 首先我们来看几个术语 HEAD 这是当前分支版本顶端的别名,也就是在当前分支 ...
- git reset与git revert的区别
http://alpha-blog.wanglianghome.org/2010/07/30/git-partial-rollback/ reset(版本撤回) 格式 git reset [-q] [ ...
- 关于git reset和git revert之前的区别
很多时候,git新手容易误操作,比如,在levelIISZ-1.4.dev分支下,运行了git pull idc cpp-1.0的结果,这样做麻烦很大,经常导致maven项目格式不正确,这个时候,可以 ...
- git reset 和 git revert 使用区别
git reset 用于回退代码,但是git pull后会和远程分支保持一致,所以无法修改远程代码 git revert可以撤销代码,撤销后直接git push ,可以修改远程分支的代码
- Git撤销&回滚操作(git reset 和 get revert)
转自:https://blog.csdn.net/asoar/article/details/84111841 git的工作流 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 ...
- git reset与git revert比較
git reset git reset的作用是还原Index的状态或改动本地分支HEAD的位置. 这个命令适合用于从某个提交点又一次开新的分支.比方,假设某个提交之后的代码我们都不要了,就能够在本地r ...
随机推荐
- An Introduction to Differential Privacy
原文链接:An Introduction to Differential Privacy 差分隐私算法可以允许分析人员执行良性的聚合分析,同时保证个人隐私得到切实的保护.. 背景数据分析中的隐私保护技 ...
- web网站——理论01
LAMP的架构以及通信过程 LAMP的架构: LAMP是一个多C/S架构的平台,最初级为web客户端基于TCP/IP通过http协议发起传送,这个请求可能是动态的,也可能是静态的. 所以web服务器通 ...
- 登录、认证、token处理、前台cookie存储token
免费课程相关表设计 models的设计 from django.contrib.contenttypes.fields import GenericRelation class Course(mode ...
- Mac部署spark2.4.4
环境信息 操作系统:macOS Mojave 10.14.6 JDK:1.8.0_211 (安装位置:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jd ...
- Ubuntu中卸载node和npm并重装
1.node 和 npm 卸载不干净 #apt-get 卸载 sudo apt-get remove --purge npm sudo apt-get remove --purge nodejs su ...
- 图片压缩工具pngquant
关于图片压缩的,之前看到一个imageOptim,用着不错,也挺好用的,直接打开要压缩的图片或者文件夹,唰唰唰的就开始压缩了,如下图 后来觉得不是很方面,还要打开软件,选择文件夹,然后就又研究了一下, ...
- linux系统修改不成功/无法修改密码
1.问题描述 新上架的60台浪潮服务器使用某带外装机平台进行统一安装,安装完成后修改用户密码时统一无法修改,使用root账户无法修改其他用户密码,自身根密码也无法修改成功 2.排查问题 因带外装机平台 ...
- Go-归档文件-tar
文件归档 tar 1. 创建一个tar头部并自动填充tar头部信息 tar.FileInfoHeader() 联合 os.Stat() 方法 2. 手动填写 tar头部信息 tar.Header{} ...
- 从面向过程到面向对象再到MVC
/* * * title: 从面向过程到面向对象再到MVC * author: tanghao * date: 2020.9.30 * version: 1.0 * */ 前言 本文档通过一个显示20 ...
- Spring循环依赖的问题
什么是循环依赖?就是两个Bean相互引用,比如用@Autowire 相互注入. 那么Spring是如何解决这个问题的呢?在Bean还未完全实例化前(类只实例化了一部分),将bean提前暴露出来 ...