文档章节

git checkout 检出命令

Romanceling
 Romanceling
发布于 2018/04/14 15:59
字数 631
阅读 462
收藏 1

检出命令(git checkout) 是git最常用的命令之一,同时也是个很危险的命令,因为这条命令会重写工作区:

  1. 用法一:git checkout [-q] [<commit>] [--] <paths>...
  2. 用法二:git checkout [<branch>]
  3. 用法三:git checkout [-m] [[-b|--orphan] <new_branch>] [<start_point>]
  • 上面列出的第一种用法和第二种用法的区别在于,第一种用法在命令中包含路径<paths>.为了避免路径和引用(或者提交id)同名而发生冲突,可以在<paths>前面用两个连续的短线(减号作为分割)
  • 第一种用法的<commit>是可选项,如果省略则相当于从暂存区进行检出(检出的默认值是暂存区)。
  • 第一种用法(包含了路径<paths>的用法)不会改变HEAD头指针,主要是用于指定版本的文件覆盖工作区中对应的文件。如果省略<commit>,则会用暂存区的文件覆盖工作区的文件,否则用指定提交中的文件覆盖暂存区和工作区中对应的文件.
  • 第二种用法则会改变HEAD头指针,主要用作切换到分支,如果省略<branch>则相当于对工作区进行状态检查。
  • 第三种用法主要是创建和切换到新的分支(<new_branch>),新的分支从<start_point>指定的提交开始创建。新的分支和master分支没有什么实质的不同,都是在refs/heads命名空间下的引用。

 具体示例:

  • git checkout branch  检出branch分支,要完成上图的三个步骤,更新HEAD以指向branch分支,以及用branch指向的树更新暂存区和工作区
  • git checkout  汇总显示工作区,暂存区与HEAD的差异
  • git checkout HEAD 同上
  • git checkout -- filename 用暂存区中filename文件来覆盖工作区中的filename文件。相当于git add filename的撤消,这个命令很危险,因为对于本地的修改会悄无声息的覆盖
  • git checkout -- .  或写作 git checkout .   注意命令后面有个点(.)  这条命令最危险,会取消所有本地的修改(相对于暂存区),相当于用暂存区的所有文件直接覆盖本地文件,不给用户任何确认的机会!
  • git checkout HEAD . 或者 git checkout HEAD <file> , 注意命令后面有个点(.) ,会用HEAD指向的master分支中的全部或部分文件替换暂存区和工作区的文件,这个操作也很危险

© 著作权归作者所有

上一篇: git add 添加文件
下一篇: git diff
Romanceling
粉丝 14
博文 166
码字总数 91809
作品 0
无锡
程序员
私信 提问
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci # ...

shzwork
04/18
56
0
《Git权威指南》读书笔记 第八章 Git检出(checkout)

重置命令(git reset)主要用于修改master引用指向的提交ID,修改过程中HEAD的指向并没有改变(一致指向/refs/heads/master,而这个master被git reset命令改变)。 相对的Git检出命令(git c...

一万
2016/07/18
57
0
Git专题------Git 常用命令速查表(图文+表格)

cover:http://www.jb51.net/article/55442.htm 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r ...

鸿蒙无上至尊
2018/05/15
0
0
idea git 高级操作(checkout、reset、revert)

---layout: blogistop: truetitle: "idea git 高级操作(checkout、reset、revert)"date: 2018-09-18category: 版本控制tags: 版本控制 --- git reset 切换到指定分支,这里以master为例,下......

开心的哈士奇
01/15
33
0
git版本管理入门

前言 git版本管理作为开源项目的版本管理法则,以及多分支多版本的扁平分布式支持,被大多数的开发者所喜爱,那么究竟如何才能正确而轻松的学习git的版本管理呢?目前公司内部是搭建的gitla...

Tolonger
2017/12/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JS--function

一、声明提前(hoist) 在js程序开始执行前,引擎会查找所有var声明的变量和function声明的函数,集中到当前作用域顶部集中创建,赋值留在原地 二、三种创建函数的方式 1、声明方式创建函数-...

wytao1995
今天
4
0
微服务之间调用控制器注解类型的差异

今天在一个业务服务通过Feign调用文件服务上传文件时遇到了几个问题: 1. 提示http请求头过大的问题; 此时需要修改bootstrap.yml,加入 server: max-http-header-size: 10000000 用以放大...

不再熬夜
今天
5
0
用 4G 工作是什么体验

七月开始,因为工作原因,在公司附近租了个住处,方便工作。离公司近了,感觉就是不一样,之前每天 5:30 就要起床赶地铁,现在可以睡到自然醒,一看才 7 点,悠闲的起床洗漱,踱步到公司,都...

zzxworld
今天
6
0
sonar报错volatile

问题发生 原先代码如下: //认证授权码private static volatile String AUTHORIZATION_CODE = "init"; git push 之后,sonar认为这是个bug检测报告截图如下: 分析排查 解释说明: Markin...

开源小菜鸟2333
今天
5
0
《Java实践指南》--读后

闲读《Java实践指南》... 1.lvy 某些项目中能够看到ivy.xml。早期使用ant的项目中,常常用ivy.xml来下载项目依赖。 2.ant 作为java程序员,应该都知道ant,虽然可能用过的人不多。为什么ant...

RippleChan
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部