匿名分支

新建个仓库,并且初始化,创建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. P2256 一中校运会之百米跑(map映射加并查集)

    真心水,也许只有我这样的蒟蒻能做这种题了吧.用STL中的map将所有人的名字映射成一个数字,然后就是并查集的裸题 #include<bits/stdc++.h> using namespa ...

  2. python的基本流程控制

    一:if判断语句 1.1 if判断语法之一 if条件: 子代码块 1.2 if判断语法之二 if条件: 子代码块 else: 子代码块 1.3 if判断语法之三 if条件: if条件: 子代码块 1. ...

  3. Windows平台下载、安装、配置Apache全攻略

    本文介绍了如何在windows平台进行apache服务器的下载.安装和配置过程. 1.下载 首先进入apache for windows的官方下载地址[猛戳这里],依次在下列页面进行下载操作: 我这里 ...

  4. CentOS_7升级系统内核

    最近,在虚拟机中安装docker成功之后,尝试运行docker run hello-world时出现以下错误: $ sudo docker run hello-world Unable to find ...

  5. 关于计时器的js函数

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  6. Hdoj 2149.Public Sale 题解

    Problem Description 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金.现在等待他的,就是像FarmJohn一样的农田生涯. 要种田得有田才行,Le ...

  7. CodeForces666E Forensic Examination

    题目描述 给你一个串S以及一个字符串数组T[1..m],q次询问,每次问S的子串S[pl​..pr​]在T[l..r]中的哪个串里的出现次数最多,并输出出现次数. 如有多解输出最靠前的那一个. 题解 ...

  8. Oracle Database 快捷版 安装 连接

    Oracle Database 快捷版 11g 第 2 版 下载地址:http://www.oracle.com/technetwork/cn/database/database-technologi ...

  9. CF765F Souvenirs

    CF765F Souvenirs [CF765F]Souvenirs 主席树 - CQzhangyu - 博客园 其实不用主席树 感觉像是离线问题 但是不能支持差分.分治又处理不了 考虑按照右端点排序 ...

  10. BZOJ3864: Hero meet devil(dp套dp)

    Time Limit: 8 Sec  Memory Limit: 128 MBSubmit: 397  Solved: 206[Submit][Status][Discuss] Description ...