匿名分支

新建个仓库,并且初始化,创建3个文件,并提交

此时在没有创建新分支的情况下,checkout一下,比如上一个快照

这一段话的意思是,使用了checkout命令,但是没有指定分支名,所以git会创建一个叫做匿名分支(没有名字的分支)的东西,当你切换到别的分支的时候,在这个匿名分支中,所做的所有操作、提交都会被丢弃掉,所以可以使用匿名分支来做一些实验

创建并提交4.txt

切回master分支

说有一个没有连接到任何分支的提交(1920177 4.txt),如果要保留为一个新的分支,那么现在是最好的时机(因为现在有快照ID),使用“git branch <分支名> 1920177”就可以创建分支

匿名分支用于实验一些有风险的提交,从匿名分支切回master分支后,匿名分支就找不到了

checkout命令

checkout命令有两种功能:

1.从历史快照(或者暂存区域)中拷贝文件到工作目录

当给定某个文件时名,git会从指定的提交中拷贝文件到暂存区域工作目录
比如执行git checkout HEAD~ 1.txt:会将上一个快照中的1.txt文件复制到工作目录和暂存区中
如果没有指定具体的快照ID,则将从暂存区域恢复指定文件到工作目录(git checkout 1.txt)
如果你有一个分支名为1.txt,使用git checkout 1.txt的时候,git不知道你是要checkout1.txt文件,还是1.txt分支,所以在不确定是否有分支名和文件名重复的情况下,一般使用git checkout --文件名

2.切换分支

checkout和reset:

reset命令是用来“回到过去”的,根据选项不同,reset命令移动HEAD指针(--soft)->覆盖暂存区(--mixed,默认)->覆盖工作目录(--hard)
checkout命令虽说是用于切换分支,但是它事实上是通过移动HEAD指针和覆盖暂存区、工作目录来实现的

区别:
1.对于reset --hard命令来说,checkout命令更安全,因为checkout命令在切换分之前会先检查一下当前的工作状态,如果不是“clean”的话,git是不允许这样做的,而reset --hard命令则是直接覆盖所有数据
2.更新HEAD指向,reset命令会移动HEAD所在分支的指向,而checkout命令置灰移动HEAD自身来执行另一个分支

Git使用十:匿名分支和checkout命令的更多相关文章

  1. git ---匿名分支和checkout命令

    git checkout -b   //创建一个匿名分支

  2. ###Git 基础图解、分支图解、全面教程、常用命令###

    一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...

  3. git命令之git tag 给当前分支打标签

    git tag - 标签相关操作 发表于 2011年06月29日 由 机器猫 标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ git tag # 在控制台打印出当前仓库的所有标签$ ...

  4. git checkout 命令详解

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

  5. git checkout 命令详解(转)

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

  6. Git -- 分支与合并 (命令行+可视化工具p4merge)

    基本命令 把所有的变化都放在master分支并不是最好的做法. 建议的做法是把变化放在分支里面. 至少应该准备一个feature分支之类的, 把变化都隔离开来, 然后等到所有的功能都稳定之后再合并到m ...

  7. IDEA环境下GIT操作浅析之二-idea下分支操作相关命令

    上次写到<idea下仓库初始化与文件提交涉及到的基本命令>,今天我们继续写IDEA环境下GIT操作之二--idea下分支操作相关命令以及分支创建与合并. 1.idea 下分支操作相关命令 ...

  8. 【Git学习二】深入了解git checkout命令

    检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区.检出命令的用法如下: 用法一:git checkout[-q][<commit& ...

  9. git checkout 命令详解【转】

    转自:http://www.cnblogs.com/hutaoer/archive/2013/05/07/git_checkout.html 在日常的git操作中,git checkout——检出,是 ...

随机推荐

  1. 磁盘IO的性能指标 阻塞与非阻塞、同步与异步 I/O模型

    磁盘IO的性能指标 - 蝈蝈俊 - 博客园https://www.cnblogs.com/ghj1976/p/5611648.html 阻塞与非阻塞.同步与异步 I/O模型 - 蝈蝈俊.net - C ...

  2. php函数 array_change_key_cash

    array_change_key_case ( array $array [, int $case = CASE_LOWER ] ) : array array_change_key_case() 将 ...

  3. Window下搭建X5本地应用打包服务器

    总的来说就是安装虚拟机,装载VM文件 X5打包服务器(App-Builder)是通过服务方式把X5开发工具(Studio)创建的本地应用进行打包和数字签名,开发者不用单独构建原生代码的编译环境,方便开 ...

  4. elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介、Java REST Client、Java Client、Spring Data Elasticsearch)

    一.ES Client 简介 1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式 3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RE ...

  5. 自己实现ArrayList与LinkedList类

    ArrayList与LinkedList的底层实现 ArrayList内部由数组实现,LinkedList内部由链表实现. 自己动手实现ArrayList与LinkedList中一些常用方法 Arra ...

  6. 【XSY3154】入门多项式 高斯消元

    题目大意 给你一个 \(n\times n\)的矩阵 \(A\),求次数最小且最高次项为 \(1\) 的多项式 \(F(x)\),满足 \(F(A)=0\). 所有操作都对 \(p\) 取模. \(n ...

  7. Zabbix通过JMX方式监控java中间件

    Zabbix2.0添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”:它是用java写的一个程序. 工作原理: zabbix_server想知道一台主机上的特定 ...

  8. PR视频剪辑

    PR视频剪辑 新手问题1: 将素材导入到Adobe Premiere Pro CC后为什么无法拖入到时间轴上 解决办法:没有建立有序列所致,CC不会一开始就让你新建序列,图中间处写的好清楚“无序列”. ...

  9. Pandas系列(五)-分类数据处理

    内容目录 1. 创建对象 2. 常用操作 3. 内存使用量的陷阱 一.创建对象 1.基本概念:分类数据直白来说就是取值为有限的,或者说是固定数量的可能值.例如:性别.血型. 2.创建分类数据:这里以血 ...

  10. Breastcancer社区评论下载

    首页 某个社区 某社区的一个话题 目标:获取这个网站所有话题的所有评论相关信息 python实现 # -*- coding: utf-8 -*- """ @Datetim ...