git reset、git checkout 和 git revert

一、git reset 和 git checkout

git reset [commit]

重置为[commit]所对应节点的提交(通过移动分支指针和HEAD指针实现),如果不指定[commit]则默认为HEAD
--soft 工作区和暂存区不变,重置仓库
--mixed 工作区不变,重置暂存区和仓库,此为默认选项
--hard 工作区、暂存区和仓库全部重置,修改完全丢失

git reset [commit] [file]

重置某个commit的指定文件到暂存区(指定了[file],不会移动分支指针和HEAD指针)
备注:如果不指定[commit]则默认为HEAD,如果参数都不指定则重置暂存区所有文件

git checkout [file]

重置暂存区的指定文件到工作区

git checkout [commit] [file]

重置某个commit的指定文件到暂存区和工作区

[commit]:可以为SHA-1值、HEAD,而HEAD~表示HEAD的父节点,HEAD~2表示HEAD的父节点的父节点,以此类推

二、git revert

git revert [commit]

用[commit]所对应节点的提交,创建一个新的反转的提交

三、git fetch 和 git pull

git fetch 仅更新origin\master分支,需要手动merge
git pull 更新origin\master分支和当前分支,相当于fetch+merge

原文地址:https://www.cnblogs.com/darknebula/p/8732995.html

时间: 2024-10-29 19:08:56

git reset、git checkout 和 git revert的相关文章

Git - reset和checkout的区别

参考 https://segmentfault.com/a/1190000006185954 1. Git的所有操作实际上是在操作这三个区域的状态(或内容) 2. 区别 checkout是会修改HEAD的指向,变更Index区域里的内容,修改Working Directory里的内容. 这看上去很像reset --hard,但和reset --hard相比有两个重要的差别 reset会把working directory里的所有内容都更新掉 checkout不会去修改你在Working Dire

git中reset和checkout的总结整理

各位看官好,git  reset和checkout是git中比较常用的两种方法,今天我想来总结一下reset和checkout的原理和架构. 一.reset的原理 二.reset的三种应用 三.checkout的原理 四.checkout的应用 1.reset的原理 1.1 关于git中三个区的说明 要说明git reset的原理,首先要简单说一下git的三个区和HEAD问题.在git中一共有三个区,分别是工作区,暂存区和提交区.其三者的对应关系是这样的: 工作区通过git add添加到暂存区,

git reset revert 回退回滚取消提交返回上一版本(转)

总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚. 这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的. 大致分为下面2种情况: 1.没有push 这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题,准备取消提交,用到下面命令 reset git reset [--soft | --mixed | --h

git reset and git checkout

git reset --hard <commit>: 1.替换引用的指向.引用指向新的提交ID; 2.替换暂存区.替换后,暂存区的内容和引用指向的文件夹树一致; 3.替换工作区.替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的文件夹树内容同样. git reset --soft <commit>: 1.替换引用的指向.引用指向新的提交ID. 即仅仅更改引用的指向,不该编暂存区和工作区. git reset --mixed <commit>或git reset

git reset revert 回退回滚取消提交返回上一版本

git reset revert 回退回滚取消提交返回上一版本 总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚. 这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的. 大致分为下面2种情况: 1.没有push 这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题,准备取消提交,用到下面命令 reset g

[转] git reset简介

http://blog.csdn.net/hudashi/article/details/7664464 http://guibin.iteye.com/blog/1014369 http://hi.baidu.com/tiger_tnt/blog/item/a0464ffa6a8115d9b58f314d.html http://web.mit.edu/~mkgray/project/silk/root/afs/sipb/project/git/git-doc/git-reset.html 一

git reset 之后切换到原来的commit

git reset的语法: git reset [--hard|soft|mixed|merge|keep] [<commit>或HEAD] 作用:将当前分支reset到指定的commit或者HEAD(默认为最新的一次提交,即重设到最新一次提交之前的版本) 那使用git reset命令之后,想回到以前怎么处理呢? 第一种方法: git reflog git reset --hard commitid 第二种方法: git reflog git checkout commitid git reb

2. git reset 命令

1.命令: git reset --soft 提交id案例: git reset --soft 1c27eac023b6a66a9d40b460cd8bbc6e564be9e9结果: 会将版本库中的文件内容还原到该提交id那刻时的内容. 2.命令: git reset 提交id案例: git reset 1c27eac023b6a66a9d40b460cd8bbc6e564be9e9结果: 会将版本库和暂存区中的文件内容还原到该提交id那刻时的内容. 3.命令: git reset --hard

Git学习总结_05_搭建Git简易高效服务器

1. mysysgit+gitblit安装流程 1.1资源 需先下载好的资源(公司用的1.6,1.7+请自行匹配对应的mysysgit+gitblit): jdk1.6 Git-1.8.4-preview20130916.exe gitblit-1.2.1.rar 1.2安装 1.2.1 Git Bash安装 1)双击弹出安装页面  2)点击2次next,进入路径选择,添加自定义的路径即可:  3)点击next,进入 选择组件,  4)点击2次next 进,选择运行环境,选择 “run Git

什么是git?window下安装git

一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活, 干完后,需要把自己做完的活推送到中央服务器.集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网 速慢的话,就纳闷了. Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版