git用法之[回滚代码]

我们在写代码的任何过程中,都有可能出错,任何过程都有可能要!回!滚!代!码!事关重大!一定要详细讲讲。

一、关于 工作区、暂存区、本地分支:

  工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的。

  暂存区:已经 git add xxx 进去,且未 git commit xxx 的。

  本地分支:已经git commit xxx 提交到本地分支的。

二、遇到想回滚代码时后怎么办?

1、在工作区的代码,被我写乱了,或者想重写。

git checkout -- a.txt   //丢弃某个文件,或者
git checkout -- .       //丢弃全部

注意:git checkout -- . 丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。对之前保存在暂存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。当然,如果你之前压根都没有暂存或commit,那就是回到你上次pull下来的样子了。所以,暂存很重要!

2、git add xxx  后,代码不想提交了,此时有两种情况:

  a: 想回到 git add xxx 之前即可,代码需要保留。

git reset HEAD .  或者
git reset HEAD a.js

  b: 压根我就不想要了。有两种办法:

    1: git reset HEAD a.js 退出暂存区;git checkout -- a.js  丢弃掉

    2: 太暴力,后面统一说

3、git commit -m ‘xxx‘ 后,代码不想提交了。

  代码不想提交了,意味着这次commit 的代码都不想要了,要丢弃。因为,如果你要一部分当前的代码,那你完全可以继续修改,再commit提交。

  插入说明一个语法:git log 查看本地commit之后的记录。包括 服务器下载下来的、本地多次commit的、本地commit后push的;如下:

liuxuewens-MacBook-Pro:soeasy-complete-event-static liuxuewen$ git log
commit 69a9c93961ab33e84437eff4d900243b05a9b0bc
Author: liuxuewen <[email protected]>
Date:   Wed Nov 2 17:05:33 2016 +0800

    修改1

commit 490d6657f1b8dffbb5cdb48d6ad823c9b5d38a38
Author: liuxuewen <[email protected]>
Date:   Wed Nov 2 17:05:18 2016 +0800

    修改2

commit 5dc29bebe8de1c1461503d13c4ccae2aaacdf1c0
Author: liuxuewen <[email protected]>
Date:   Wed Nov 2 17:02:48 2016 +0800

    修改3

commit a7852596e0de28ce2425c59b7a5aef2d817082d9
Author: liuxuewen <[email protected]>
Date:   Wed Nov 2 17:00:48 2016 +0800

  然后,你可以通过 reset 命令回到其中你想要的某个版本,

git reset --hard 5dc29bebe8  //commit id 截取前8位及以上都可以

  或者,你还可以通过 reset 回到最新的一次提交,

git reset --hard HEAD^

  如果你实在只是不想commit,只想让代码回到工作区,不想丢弃,可以这样:

git reset HEAD^  //此时代码保留,回到 git add xx 之前

  注意:不管是 git checkout -- xxx 丢弃,或者是 git reset xxx 都一定要!小!心!操!做!因!为!意!味!着!你!本!地!写!的!代!码!将!丢!失!当然,确定没用,该扔就扔!

时间: 2025-01-01 09:47:10

git用法之[回滚代码]的相关文章

sql事务(Transaction)用法介绍及回滚实例_转

sql事务(Transaction)用法介绍及回滚实例 事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性 当对多个表进行更新的时候,某条执行失败.为了保持数据的完整性,需要使用事务回滚. 显示设置事务 代码如下 begin try   www.2cto.com begin transaction insert into shi

回滚代码

工作中我们时常会遇到回滚代码的需求 分两种情况,push上去了,和没有push(只是commit/add了) 如果没有push上去,命令是 git reset,如果push上去了使用git revert git reset 的功能是回退本地的代码,并不会改变线上的代码,git reset 有3个参数可用 1.git reset --mixed +版本号    暂存区(add区)和提交区(commit区)会回退到某个版本,本地的代码不会改变. 2.git reset --soft +版本号   

关于调用方有事务,被调用的SP中也有事务,在嵌套SP中回滚代码的报错处理,好文推荐

SQL报错异常:Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 1, current count = 0. --首先明确一点,在SQL中开启事务时,Begin Tran时,@@TRANCOUNT会加1,Commit Tran时@@TRANCOUNT会减1,但是当ROLLBACK TRAN时会把@@TranCount直接设置

Git回滚代码暴力法

Git回滚有多种方式,这里使用的是[强制提交到远程分支] 效果为:如回滚前的提交记录是 1.2.3.4,使用这种方法回滚到2,那么提交记录就变成了1.2. 操作方法: 需要在本地的Git仓库,右键选择[Git Bash],输入reset --hard 命令 $ git reset --hard commit-id $ git push -f origin currentBranch 第一句作用是恢复到指定的版本,commit-id替换为对应的版本编号,在下面介绍如何获取 第二句的作用是把当前分支

Git回滚代码

回滚命令: 1.回退到上个版本 $ git reset --hard HEAD^ 2.回退到前2次提交之前,以此类推,回退到n次提交之前 $ git reset --hard HEAD~2 3.退到/进到 指定commit的sha码 $ git reset --hard commit_id 然后强推到远程: $ git push origin HEAD --force 原文地址:https://www.cnblogs.com/Dev0ps/p/11614023.html

Git回滚代码操作

1.本地回滚到你要的版本:git reset --hard 489a525ee 2.将回滚到的版本[强制]push要远程分支:git push -f origin weixin2.6.19 3.本地切换到别的分支,然后删除回滚的分支 weixin2.6.19 4.重新切换到远程的分支 weixin2.6.19 原文地址:https://www.cnblogs.com/Mr-Echo/p/12099601.html

sql事务(Transaction)用法介绍及回滚实例

事务是将一系列操作作为一个单元执行,要么成功,要么失败,回滚到最初状态.在事务处理术语中,事务要么提交,要么中止.若要提交事务,所有参与者都必须保证对数据的任何更改是永久的.不论系统崩溃或是发生其他无法预料的事件,更改都必须是持久的.只要有一个参与者无法做出此保证,整个事务就会失败.事务范围内的所有数据更改将回滚到特定设置点. Begin TRANSACTION 语句1; If @@error<>0 Goto error 语句2; If @@error<>0 Goto error

Git reset head revert 回滚

Overview 涉及Git一些日常操作 :) 基础知识 <Pro Git>至少了解branch,commit的概念,及基本的原理 Git常用魔法 存档:master代码回滚方法 我是QA,我用Git Git 工作区.暂存区和版本库 Overview 暂存区(stage, index)是 Git 最重要的概念之一 工作区: 你的目录下面的文件们 暂存区: 由.git/index保存引用,.git/object保存对象的区域 版本库: 仓库 Relations Why stage before

git reset 操作后回滚

在使用git的过程中,虽然每次reset,rebase的时候你都小心翼翼,但是常在河边走,哪能不湿鞋?冷不丁一天状态不好,reset以后,发现你要的commit都不见了!心急如焚的你该如何处理这样的"突发事件"呢?显然,git是不会让你选择重写代码的.这时候,回滚操作就是你的最后一根救命稻草了! 1. $ git reflog 这条命令,基本上能让你知道你最近做的所有操作了,找到想回滚到哪一步,再执行 $ git reset --hard e0e9999 大功告成,刷新一下你的git界