Git使用十:匿名分支和checkout命令
匿名分支
新建个仓库,并且初始化,创建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命令的更多相关文章
- git ---匿名分支和checkout命令
git checkout -b //创建一个匿名分支
- ###Git 基础图解、分支图解、全面教程、常用命令###
一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...
- git命令之git tag 给当前分支打标签
git tag - 标签相关操作 发表于 2011年06月29日 由 机器猫 标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ git tag # 在控制台打印出当前仓库的所有标签$ ...
- git checkout 命令详解
转自:http://www.cnblogs.com/hutaoer/archive/2013/05/07/git_checkout.html?utm_source=tuicool&utm_me ...
- git checkout 命令详解(转)
在日常的git操作中,git checkout——检出,是我们的常用命令.最为常用的两种情形是创建分支和切换分支. 在下面的命令中,使用了一些简写,在这里说明一下: git st # git stat ...
- Git -- 分支与合并 (命令行+可视化工具p4merge)
基本命令 把所有的变化都放在master分支并不是最好的做法. 建议的做法是把变化放在分支里面. 至少应该准备一个feature分支之类的, 把变化都隔离开来, 然后等到所有的功能都稳定之后再合并到m ...
- IDEA环境下GIT操作浅析之二-idea下分支操作相关命令
上次写到<idea下仓库初始化与文件提交涉及到的基本命令>,今天我们继续写IDEA环境下GIT操作之二--idea下分支操作相关命令以及分支创建与合并. 1.idea 下分支操作相关命令 ...
- 【Git学习二】深入了解git checkout命令
检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区.检出命令的用法如下: 用法一:git checkout[-q][<commit& ...
- git checkout 命令详解【转】
转自:http://www.cnblogs.com/hutaoer/archive/2013/05/07/git_checkout.html 在日常的git操作中,git checkout——检出,是 ...
随机推荐
- Linux 系统巡检常用命令
Linux系统巡检常用命令 # uname -a # 查看内核/操作系统# cat /etc/centos-release # 查看centos操作系统版本# cat /proc/cpuinfo ...
- LeetCode-876 链表的中间结点
对于链表的中某个位置结点的定位一般都会用到两个链表结点指针,例如链表倒数第K个结点问题使用的是先后指针,该题中用到的快慢指针. 本题的具体解法就是快指针走两步.慢指针走一步知道遍历完结点,重点是分清题 ...
- SpringBoot整合swagger
Swagger使用 Swagger有什么用? swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPI Specification,OAS)为基础, 对整个API的开发周 ...
- Docker 容器日志格式化
Docker容器的日志文件每一行都是一个json对象,其包含log.stream.time三个属性,下面的HTML从textarea中读取输入的日志信息,格式化为表格显示. <!DOCTYPE ...
- DIV正确打开方式 ~~~~哈哈哈
<div style='margin-left:25px;margin-right:25px;margin-top:10px;height:350px;min-height:50px;backg ...
- BZOJ1975[Sdoi2010]魔法猪学院——可持久化可并堆+最短路树
题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...
- rest framework 视图,路由
视图 在上面序列化的组件种已经用到了视图组件,即在视图函数部分进行逻辑操作. 但是很明显的弊端是,对每个表的增删改查加上 单条数据,需要用到 2个类 5个方法(增删改查,单数据查)才可以完整的实现,当 ...
- [九省联考2018]秘密袭击coat
[九省联考2018]秘密袭击coat 研究半天题解啊... 全网几乎唯一的官方做法的题解:链接 别的都是暴力.... 要是n=3333暴力就完了. 一.问题转化 每个联通块第k大的数,直观统计的话,会 ...
- 【CH4302】Interval GCD
题目大意:给定一个长度为 N 的序列,M 个操作,支持区间加,区间查询最大公约数. 题解: 先来看一个子问题,若是单点修改,区间最大公约数,则可以发现,每次修改最多改变 \(O(logn)\) 个答案 ...
- openCV 3.0 Ubuntu下编译问题
1.有个ipptv啥的东西下布下来,去官网下载放到相应目录 2.把编译器降级到5版本才能编译