git checkout 命令详解—— Git 学习笔记 16
git checkout
命令详解
概览
git checkout 这条命令的常用格式如下:
用法一
git checkout [<commit>] [--] <paths>
用于拿暂存区的文件覆盖工作区的文件,或者用指定提交中的文件覆盖暂存区和工作区中对应的文件。
用法二
git checkout <branch>
用于切换分支。
用法三
git checkout -b <new_branch> [<start_point>]
用于创建并切换分支。
详细说明
1. git checkout [<commit>] [--] <paths>
第一种用法在命令中包含路径 <paths>
。为了避免路径<paths>
和引用(或者提交)<commit>
同名而冲突,可以在<paths>
前用两个连续的短线减号作为分隔。
<commit>
是可选项,如果省略则相当于从暂存区(index)检出。这和 git reset
重置命令(例如 git reset HEAD <file>
)大不相同:重置的默认值是 HEAD
,而检出的默认值是暂存区。因此重置一般用于重置暂存区(除非使用--hard
参数,否则不重置工作区),而检出命令主要是覆盖工作区(如果<commit>
不省略,也会替换暂存区中相应的文件)。
第一种用法(包含了路径 <paths>
的用法)不会改变 HEAD
头指针,主要是用于拿指定版本的文件覆盖工作区中对应的文件。如果省略<commit>
,则会拿暂存区的文件覆盖工作区的文件,否则用指定提交中的文件覆盖暂存区和工作区中对应的文件。
2. git checkout <branch>
第二种用法(不使用路径<paths>
的用法)则会改变 HEAD
头指针。之所以后面的参数写作<branch>
,是因为只有 HEAD
切换到一个分支才可以对提交进行跟踪,否则仍然会进入“分离头指针”(Detached HEAD)的状态。在“分离头指针”状态下的提交不能被引用关联到而可能会丢失。所以用法二最主要的作用就是切换分支。
3. git checkout -b <new_branch> [<start_point>]
-b
选项表示创建新分支。如果指定了 <start_point>
,那么新的分支将指向<start_point>
,否则新的分支指向当前的 HEAD
. 新分支和我们熟悉的 master 分支并没有什么实质的不同,都是在refs/heads
命名空间下的引用。第三种用法用于分支的创建并切换。
参考资料
《Git 权威指南》
git checkout 命令详解—— Git 学习笔记 16相关推荐
- git reset 命令详解 git revert命令详解。
git reset 命令详解 reset命令 介绍 参数 补救 git revert命令 revert说明 举例: 命令 reset命令 介绍 git reset 命令格式为: git reset [ ...
- git checkout 命令详解
转自:http://www.cnblogs.com/hutaoer/archive/2013/05/07/git_checkout.html?utm_source=tuicool&utm_me ...
- Git(8)-- 撤消操作(git commit --amend、git reset 和 git checkout 命令详解)
文章目录 1.撤消操作:`git commit --amend` 实例详解: 2.取消暂存的文件:`git reset` 3.撤消对文件的修改:`git checkout` 超详细 Git 图文版小白 ...
- git log 命令详解
git log 命令详解 git log 命令用于查看提交历史: git log [options] [<file> <commit> <tag>...] 如果不加 ...
- 运维之道 | Git log 命令详解
Git log 命令详解 Git log 可以让我们查看提交commit history [root@localhost villian]# git log commit 7a690b414f87fb ...
- git reset 命令详解(一)—— Git 学习笔记 07
git reset 命令详解(一) 简而言之,git reset 命令是用来将当前 branch 重置到另外一个 commit 的,这个动作可能同时影响到 index 以及 work director ...
- git reset 命令详解(二)—— Git 学习笔记 08
git reset 命令详解(二) 上一篇博文git reset 命令详解(一)讲了 git reset 命令的基本原理和用法,这篇博文谈一谈 git reset 的另一种用法--后面跟一个路径(或文 ...
- Git 常用命令详解
Git 常用命令详解 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信息 1.3 创建版本库 1.4 常用Git命令汇总 2. Git 解决代码冲突 3. Git 分支管理 ...
- git diff命令详解
git diff命令详解 diff里面a表示前面那个变量,b表示第二个变量 HEAD commit版本 Index staged版本 a.查看尚未暂存的文件更新了哪些部分,不加参数直接 ...
最新文章
- 基于Python进行相机校准
- dataGridView右键菜单并选中该行 http://blog.csdn.net/lanmao100/archive/2009/06/25/4298529.aspx...
- Tensorflow一些常用基本概念与函数
- LeetCode 672. 灯泡开关 Ⅱ(枚举)
- 【前端自动化构建】之 自动化部署
- 【cf585-div2: B】 The Number of Products(dp/推导)
- 统计php 代码行数,PHP实现统计代码行数小工具
- 蛋白质降解技术中常用的蛋白酶(一)
- 让POW的共识机制不再成为公链系统吞吐率的瓶颈 | Conflux CTO伍鸣
- Filter过滤器的简单介绍与使用
- 【MySQL】数据库中的三大范式
- 萌新python爬虫初学
- sql 语句in 使用占位符
- 随机生成10个0-100的正整数
- C语言实现linux环境UDP协议接收发送数据
- 【微信小程序】云函数/云数据库 errMsg: parameter should be object instead of undefined
- Linux 挂载外加磁盘
- U盘装win7系统nbsp;NTLDRnbsp;is…
- 《期货及衍生品基础》第2章 期货市场组织结构与投资者
- VB Adodc1控件添加数据