Git - reset和checkout的区别

参考

https://segmentfault.com/a/1190000006185954

1. Git的所有操作实际上是在操作这三个区域的状态(或内容)

2. 区别

checkout是会修改HEAD的指向,变更Index区域里的内容,修改Working Directory里的内容。

这看上去很像reset --hard,但和reset --hard相比有两个重要的差别

  1. reset会把working directory里的所有内容都更新掉
  2. checkout不会去修改你在Working Directory里修改过的文件
  3. reset把branch移动到HEAD指向的地方
  4. checkout则把HEAD移动到另一个分支

原文地址:https://www.cnblogs.com/allen2333/p/9136559.html

时间: 2024-11-10 14:19:51

Git - reset和checkout的区别的相关文章

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、git checkout和git revert的区别

这三个git命令都是用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于commit层面,还可以作用于file层面Reset在commit层面,reset通过移除当前分支的一些节点来实现版本回滚; 拥有mixed(默认).soft.hard三个参数:例如:$git reset <commit id> 使用mixed方式回退到指定版本 $git reset --soft <commit id> 使用soft方式回退到指定版本 $git reset --hard <commi

代码回滚:git reset、git checkout和git revert区别和联系

git reset.git checkout和git revert是你的Git工具箱中最有用的一些命令.它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用于特定文件. 因为它们非常相似,所以我们经常会搞混,不知道什么场景下该用哪个命令.在这篇文章中,我们会比较git reset.git checkout和git revert最常见的用法.希望你在看完后能游刃有余地使用这些命令来管理你的仓库. Git仓库有三个主要组成——工作目录,缓存区和提交历史.这张图有助于理解每个

git reset soft,hard,mixed之区别深解

GIT reset命令,似乎让人很迷惑,以至于误解,误用.但是事实上不应该如此难以理解,只要你理解到这个命令究竟在干什么. 首先我们来看几个术语 HEAD 这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交 Index index也被称为staging area,是指一整套即将被下一个提交的文件集合.他也是将成为HEAD的父亲的那个commit Working Copy working copy代表你正在工作的那个文件集 Flow 当你第一次checkout一个分支,HEAD就指向当前

如何理解git checkout -- file和git reset HEAD -- file

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374831943254ee90db11b13d4ba9a73b9047f4fb968d000 首先需要知道工作区(working diretory)和暂存区(Stage)这两个概念.工作区的该概念不仅包含你实际操作.更改的文件还应当包括当前修改但未add存入暂存区的文件变化信息,暂存区的作用则是临时存储文件的变化信息,在gi

git代码回滚:Reset、Checkout、Revert的选择

代码回滚:Reset.Checkout.Revert的选择 Zhongyi Tong edited this page on Dec 8, 2015 · 5 revisions Pages 19 Home 2.1 快速指南 2.2 创建代码仓库 2.3 保存你的更改 2.4 检查仓库状态 2.5 检出之前的提交 2.6 回滚错误的修改 2.7 重写项目历史 3.2 保持同步 3.3 创建Pull Request 3.4 使用分支 3.5 常见工作流比较 4.1 图解Git命令 5.1 代码合并:

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、git checkout 和 git revert

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

一图看懂git版本管理 reset revert checkout

git是一个流程,流程就有提交和回滚,git提供这些命令就是让你提交修改和回滚修改的. 自己用powerdesign画了一张图,可以很容易看懂git中版本如何向前提交和向后回滚 提交相关:add,comit 回滚相关:reset,revert,checkout 下图小人 1,2,3 分别表示git的三个重要概念:工作区,暂存区,本地版本库. 初始状态txt文件都指向v1版本状态. 原文地址:https://www.cnblogs.com/reachlins/p/9146135.html