git checkout 有两种不同的功能:

  • 切换分支
  • 撤销工作区的修改

创建/切换分支

  • 切换分支
git checkout <branch>
  • 创建并切换分支
git checkout -b <branch>
  • 创建分支并与远程分支相关联的两种快捷方式
git checkout -b <branch> origin/<branch>

先在本地建立一个分支,并切换到该分支,然后从远程分支上同步代码到该分支上,并建立关联

git checkout -t origin/<branch>

默认会在本地创建一个和远程分支一样名称的分支,其他和上面一致

撤销工作区的修改

git checkout -- <file>
  • 注意:这条命令只针对工作区的修改有效

扩展

这里有个疑问:修改了工作区的内容后,使用 git checkout -- <file>撤销,到底是从暂存区还是版本库中还原内容呢?

比如我们对readme.txt文件进行修改,然后使用git checkout -- readme.txt 命令将readme.txt在工作区的修改全部撤销掉,这里要分为两种情况分析:readme.txt文件修改后未提到暂存区和已提到暂存区

  • 一种是readme自修改后还没有被放到暂存区,现在撤销修改就回到和版本库一模一样的状态;
  • 一种是readme已经添加到暂存区后,再作了修改,现在撤销修改就回到暂存区后的状态;

总之,git checkout -- <file>命令就是让文件回到最近一次git commitgit add时的状态

参考

廖雪峰老师的Git教程

Git之checkout命令总结相关推荐

  1. git checkout 命令详解—— Git 学习笔记 16

    git checkout 命令详解 概览 git checkout 这条命令的常用格式如下: 用法一 git checkout [<commit>] [--] <paths> ...

  2. git checkout 命令详解

    转自:http://www.cnblogs.com/hutaoer/archive/2013/05/07/git_checkout.html?utm_source=tuicool&utm_me ...

  3. 使用git checkout命令切换到指定的commit

    git checkout命令有很多种用法. git checkout + 分支名,切换到指定的分支. 比如git checkout develop: 切换之后,HEAD文件的内容: ref: refs ...

  4. Git之深入解析reset命令原理以及与checkout命令的区别

    一.前言 了解了管理或者维护 Git 仓库.实现代码控制所需的大多数日常命令和工作流程,尝试跟了踪和提交文件的基本操作,并且掌握了暂存区和轻量级地分支及合并的威力.如果想进一步对 Git 深入学习,可 ...

  5. git checkout 命令

    git checkout git checkout 命令用于更新工作区的文件使它们和指定提交或暂存区保持一致,也就是会从指定提交(或者暂存区)中拷贝文件到工作区替换掉原有的文件,也可用于切换分支(切换 ...

  6. git checkout 命令图文详解

    git checkout 命令图文详解 git checkout branchname (切换本地分支) 切换远程分支 放弃修改 git checkout . git checkout -- file ...

  7. Git 最全命令总结都在这里了

    1. 基本命令 git diff 不加参数直接输入 git diff : 尚未暂存的文件更新了哪些部分 git diff --staged : 已暂存文件与最后一次提交的文件差异 git diff - ...

  8. Git基础(常用命令)介绍

    版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 关于版本控制分为三种:本地版本控制系统,如rcs:集中化的版本控制系统,如CVS.SVN:分布式版本控制系统,如Git. Gi ...

  9. Git系列之git log高级命令

    原文地址 使用任何版本控制工具的目的都在于记录你代码的变化.这可以给予你查看项目历史的能力,去发现谁做出了贡献,弄清楚何时产生了bug,回滚到错误的修改.但是,如果你无法定位,获取这些历史记录将变得毫 ...

最新文章

  1. 学习笔记(3.29)
  2. powerdesigner生成php代码,让powerdesigner生成的sql语句在mysql上成功执行
  3. vCloud Automation Center (vCAC) 6.0 (一)
  4. ncnn tensorrt
  5. 软件架构设计最佳实践
  6. 基于Xml 的IOC 容器-解析配置文件路径
  7. spark的外排:AppendOnlyMap与ExternalAppendOnlyMap
  8. android bitmap 加边框,Android 给圆角的Bitmap加边框
  9. linux 按键驱动中断 rockchip_嵌入式linux快速入门(转载)
  10. 达内java实训总结_Java核心技术点小结
  11. 顺序结构程序设计总结
  12. 5. 生信技能树——GEO转录组RNA_seq_GSE162550
  13. Python实现同义词替换(哈工大pyltp分词)
  14. 关于晶圆介绍以及IGBT晶圆的应用
  15. MPS | 聊聊功率因数校正那些事儿
  16. 雷声大雨点小,廖翔廖翔你真diao
  17. Redis数据库简介
  18. 2023年如何实习QQ强制拉人入群,QQ批量拉群,QQ强制拉群软件开发定制的思路解析
  19. 12以内阶乘、自然对数e及e的x次方的计算(Factorial)
  20. 时间管理---规律你的生活

热门文章

  1. C语言100个囚徒和灯泡,经典算法问题其一:百日囚徒问题
  2. 对话孟岩:通证经济背后的陷阱及方法论
  3. 生物系转行学编程,如今身家26亿
  4. WakeupController 走读
  5. 关于实习和秋招的准备
  6. NTS-Net复现出bug
  7. 谷歌地图显示服务器错误解决方法,谷歌地图API:内部服务器错误插入功能时
  8. 牛客Top101 JS合并两个排序的列表
  9. Mac的日历事件如何同步更新到iphone手机中?
  10. dht22温湿度传感器特点及使用介绍