zoukankan      html  css  js  c++  java
  • Git分支(本地)

    1、Git保存的不是文件的差异或者变化量,而只是一系列文件快照(File Snapshot);
     
    2、暂存操作会对每一个文件计算校验和(SHA-1哈希字符串),然后把当前版本的文件快照保存到Git仓库中(Git使用blob类型的对象来存储这些快照),并将校验和加入到暂存区;
     
    3、Git中分支,其实本质上是个指向Commit对象的可变指针。Git会使用master最为默认的分支名称。在若干次提交后,你其实已经有了一个指向最后一次提交对象的master分支,它在每次提交时都会自动向前移动;
     
    4、Git是如何知道当前在哪个分支上工作的呢?答案很简单:它保存着一个名叫HEAD的特别指针(HEAD指针是一个指向你正在工作中的本地分支的指针);
     
    5、运行git branch命令仅仅是创建了一个新的分支,但不会自动切换到这个分支中去;
     
    6、git checkout master命令做了2件事:
    6.1、把HEAD指针指向master分支;
    6.2、把工作目录中的文件替换成master分支所指向的快照内容。
     
    7、Git中的分支实际上仅是一个包含所指对象校验和(40个字符长度SHA-1字符串)的文件,所以创建和销毁一个分支就变得十分廉价;
     
    8、对于HotFix采取如下的流程来处理:
    8.1、返回原先已经发布到生产服务器上的分支;
    8.2、为这次紧急修补建立一个新分支,并在其中修复问题;
    8.3、通过测试后,回到生产服务器所在的分支,将修补分支合并进来,然后再推送到生产服务器上;
    8.4、切换到之前实现新需求的分支,继续工作。
     
    9、对于2个分支没有直接的祖先对象,按如下方式进行合并:
    9.1、Git没有简单地将指针向右移动;
    9.2、将三方(比如:C4、C5、C2)合并后的结果重新做一个新的快照,并自动创建一个指向它的提交对象(比如为:C6),这样提交对象(C6)比较特殊,它有两个祖先(C4和C5);
     
    10、查看各个分支最后一个提交对象的信息,运行:git branch -v
     
    11、查看已于当前分支合并的分支,运行:git branch --merged
     
    12、查看未与当前分支合并的分支,运行:git branch --no-merged
     
    13、特性(Topic)分支:一个短期的用来实现单一特性或与其相关工作的分支,在Git中,一天之内建立、使用、合并再删除多个分支是常见的事;
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    Jenkins配置国内镜像源
    Centos7安装Jenkins
    IDEA端口占用问题
    dsPIC33F配置ADC软件触发轮询与采样中断的注意事项与区别
    stm32cubemx生成HRTIM DAC等代码及注意事项
    TMS320F28335下载程序到Flash相关问题
    Tms320F28335中AD采样存储地址问题记录
    MatlabR2018a出现“Licence Manager Error -8”
    system级别配置php-开机自启方式
    《费曼学习法》笔记摘要
  • 原文地址:https://www.cnblogs.com/frankyou/p/4666726.html
Copyright © 2011-2022 走看看