• 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自身来执行另一个分支

  • 相关阅读:
    转载别人(ZZ)创建要素集
    CAD转化为Shp
    VBS学习
    3度带/6度带
    头文件学习,GEOTIFF
    arcmap vba 生成3维侧棱 以及 createfeature与createfeaturebuffer的区别
    另类
    幸福人生讲座(七):怎样引导孩子立志
    幸福人生讲座(四):孝道与仁爱是根本
    幸福人生讲座(二):人生怎样才能幸福?
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10707270.html
Copyright © 2020-2023  润新知