Git的checkout, reset, revert

不管是修改还是新建文件,都必须通过git add把这次修改从工作区加到暂存区;

commit只是提交暂存区的修改,还没add到暂存区处于工作区的修改是不会commit的;

git checkout可以将工作区的文件用暂存区的文件去替换掉,用于没commit之前;

git reset —mixed可以将commit到本地仓库的修改记录回滚,并删掉暂存区的文件,但是工作区的修改还在,相当于只修改了文件,没有 add到暂存区,也没有commit到仓库,用于没push之前;

git reset —soft,只回滚记录,不删掉暂存区的文件;

git reset —hard,回滚记录,删除暂存,并删除本地修改,相当于全部回滚。

工作区—>暂存区—>本地仓库

hard               回滚         回滚         回滚

mixed             no            回滚         回滚

soft                 no             no           回滚

checkout        覆盖          no            no

git revert用于把远程仓库覆盖本地仓库

reset会删掉之前的记录,revert保留记录,并生成依次新的commit;

revert只会revert针对当前一条记录重新做一次commit,并不会把这个记录之后提交的记录revert;

可以revert revert;

revert某条记录的时候,别人之后提交的记录不会丢,但是别人提交的代码可能被你这次revert给弄丢掉;

不要merge之后revert;

时间: 2024-11-09 03:49:10

Git的checkout, reset, revert的相关文章

git教程:reset,revert

我们使用版本控制系统的原因之一,就是希望保存开发开始以来的各种修改,方便找回以前的代码,或去除错误修改.就算是一个人开发,如果没有版本控制系统,我开发进行到一个地方,发现方向不对,要回头时,只能再重新开发,或凭记忆修改代码到以前状态,那简直是噩梦. 本文专门介绍一下后悔药:reset,revert. 先讲一下版本,我们要恢复也要知道恢复到哪个版本,git不像svn有版本号,只有commit ID,就是那一串40位的十六进制字符串,为了方便操作,用HEAD代表最后一次提交,HEAD^表示HEAD的

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 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

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

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

reset, checkout和revert

git reset, git checkout, git revert能让你撤销你本地仓储的一些修改,  前两种命令可以作用于commit或者一个文件. Commit级别的操作 注意了git revert只能作用于commit不能作用于文件. reset 在commit级别, reset把你的branch的顶端移动到另外一个commit. 可以用来删除你当前分支的commit. 例如, 下面的命令把hotfix分支往后后退两次. git checkout hotfix git reset HEA

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

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

git reset revert区别

git revert HEAD~1 撤销倒数第二次提交,并将这次操作作为一个新提交添加到log里,之前的提交历史不变,是撤销某次提交 git reset,直接回退到指定版本 git reset --soft HEAD~1 是回退到倒数第二次提交,最后一次提交历史清除,但是将最后一次的提交退回到暂存区,也就是说文件 还在,如果不加soft,则默认是soft git reset --soft HEAD~1 是回退到倒数第二次提交,最后一次提交历史清除,最后一次的提交也删除,也就是提交的文件 也删除

Git 进阶指南(git ssh keys / reset / rebase / alias / submodule )

在掌握了基础的 Git 使用 之后,可能会遇到一些常见的问题.以下是猫哥筛选总结的部分常见问题,分享给各位朋友,掌握了这些问题的中的要点之后,git 进阶也就完成了,它包含以下部分: 如何修改 origin 仓库信息 如何配置 git ssh keys 如何撤销修改 遇到冲突了怎么解决 git stash / alias / submodule 的使用问题等 问:如何修改 origin 仓库信息? 1.添加 origin 仓库信息 git remote add origin <git仓库地址>

在 Git 中 Checkout 历史版本

昨天写代码的时候,误删了一个文件.今天发现的时候,commit 已经 push 到版本库了.本想用 git reset 回退版本,找回文件后重新提交.但是想起 Git 是一个版本控制系统哎,直接从版本库里 checkout 出某个文件的历史版本不就好了? 想法挺好,但是很久没用这个功能,自己已经不记得具体的命令了.于是查了下手册,把和 checkout 历史版本有关的几个命令都记录一下. 从某个历史版本创建新的分支 在 Git 中从当前分支创建并检出新分支的命令是 git checkout -b