撤销修改


撤销本地修改

git reset --hard

或者

git checkout -- .

切换分支


切换到前一分支

git checkout -

切换到某个分支

git checkout <some-branch>

创建新分支

git branch <some-branch> # 创建分之后不切换到新分支
# 或者
git checkout -b <some-branch> # 创建分支后切换到新分支

版本回退


回退 <n> 个版本

git reset HEAD~<n>

例如,想回退 3 个版本,则使用 git reset HEAD~3

通过 SHA 来撤销某个版本

git reset --hard <SHA>

这个时候 <SHA> 之前的所有版本都会被撤销。

补救措施

如果你回退到某个版本之后,发现又想恢复之前的版本,则先使用

git reflog

来查看需要恢复版本的 <SHA> 值,再使用

git reset --hard <SHA>

来进行恢复。

代码暂存


有的时候在分支 A 上工作,但突然要改分支 B 上的代码,这时并不想提交分支 A,而希望保留现在的改动,这时可以使用

git stash

来保存当前的改动,然后切换到分支 B

等从分支 B 切换回分支 A 时,使用

git stash apply

或者

git stash pop

来恢复之前的改动。

查看所有 stash

git stash list

删除最新 stash

git stash drop

删除所有 stash

git stash clear
文/TaoIM(简书作者)
原文链接:http://www.jianshu.com/p/eae90e2f9d5f
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

git 常用技巧的更多相关文章

  1. git常用技巧

    一般的过程: ①如果还没有库先用 git clone 克隆一个库. ②使用 git checkout master切换到master分支. ③使用 git pull 同步远程master分支(即git ...

  2. [Git] Git 常用技巧

    版本对比 1. 对比两个 COMMIT git diff <commit> <commit> 2. 对比 COMMIT 和父 COMMIT git diff <commi ...

  3. iOS开发——开发技巧&Git常用命令

    Git常用命令 初始化git init        加—bare实现远程仓库 配置git config user.name iCocos 配置全局git config —global user.na ...

  4. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  5. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  6. AS技巧合集「常用技巧篇」

    转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254723&extra=page%3D2%26filter%3Dautho ...

  7. Git 常用命令详解(二)

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  8. git使用技巧

    git使用技巧 转载自:http://172.17.144.8/iceway.zhang/shares/201604/201604_git_tips.md.html 我们在工作中几乎每天都会用到git ...

  9. 【转】 Git 常用命令详解(二)----不错

    原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如: ...

随机推荐

  1. [JBoss] - 在Jboss 7.1 AS中打印hibernate的SQL方法

    因为JBoss使用的是log4j,JBoss的系统日志级别默认是INFO.而Hibernate或IBatis要打印SQL,级别为DEBUG,所以,程序设置了log4j级别为DEBUG会被JBoss系统 ...

  2. [solr] - Facet - autocomplete

    Solr的facet可以用于一般性的前缀式自动完成功能,当然,它的主要功能是用于做统计.分类.区间等. 统计.分类.区间功能,可参考下文: http://hongweiyi.com/2013/03/a ...

  3. POJ1229 域名匹配

    给你两个域名,域名中包含一些通配符. * :匹配一个或任意多个部分 ?:匹配一个或三个部分 !:匹配三个以上部分. 求这两个域名是否能够表示同一个域名? 域名的长度不超过255. 分析:设给出的域名为 ...

  4. linux下的vim使用教程

    命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim ...

  5. netbean7.2 改变maven插件的中心库地址

    今天内网安装netbeans 7.2(因为所使用的JDK版本问题),但安装上去之后发现build failure,提示说仓库主机找不到,因为提示上说的是apache的仓库地址.看执行maven的输出可 ...

  6. 在windows上安装scikit-learn开发环境

    操作系统:Windows 10 64位 1.安装python 前往https://www.python.org/downloads/下载对应操作系统的版本,笔者下载了32位的python 2.7.13 ...

  7. goldengate 参数之GETTRUNCATES | IGNORETRUNCATES --转载

    GETTRUNCATES | IGNORETRUNCATESValid ForExtract and ReplicatDescriptionUse the GETTRUNCATESand IGNORE ...

  8. PHP文件读写操作之文件写入代码

    在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发 ...

  9. Git服务器、http协议及XCode

    本来费了老鼻子牛劲搭好了SVN,可以通过web进行访问,也弄好了eclipse和XCode,结果几个开发的同事说要上git,悲了个催,又开始折腾git. 因为公司只有一个公网的http出口,因此开始了 ...

  10. C++学习基础十——子类构造函数与析构函数的执行

    1.子类构造函数的执行: 先执行父类的构造函数,再执行成员对象的构造函数,最后执行自身的构造函数. 当继承多个类时,构造函数的 执行顺序与继承时的顺序 相同,而与子类构造函数调用父类构造函数的顺序无关 ...