zoukankan      html  css  js  c++  java
  • 008.progit笔记---git分支

    01、git暂存原理

    • 每个文件SHA-1校验和
    • 使用blob对象保存当前版本文件快照到git仓库
    • 将校验和加入暂存区域等待提交

    02、git提交原理

    • 树对象:计算每个子目录校验和,在git仓库中保存这些校验和为树对象
    • 提交对象(commit object):git会保存一个提交对象,包含暂存内容快照的指针、作者姓名、邮箱、提交信息、父对象指针(首次提交不存在,合并分支时可能有多个)、指向树对象根目录的指针

    03、git非首次提交(提交对象会包含父对象)

      

    04、git分支本质(41个字节=40提交对象SHA-1 + 1换行)

      指向提交对象的可变指针,每次提交都会自动向前移动

    05、创建分支

      $ git branch testing  (在当前提交对象上创建一个新的可变指针)

    06、HEAD分支

      指向当前本地所属分支

    07、查看分支

      $ git log --oneline --decorate --graph --all  (查看提交对象 & 对应分支)

    08、切换到已存在分支

      $ git checkout <branch>  (切换HEAD指针到指定分支,并将工作区切换)

    09、新建并切换到新建分支

      $ git checkout -b <branch>

    10、合并分支

      $ git merge <branch>  (将branch分支合并到当前分支)

      • 快进(fast-forward):当前分支是merge分支的祖先级别分支,会直接快进,不会创建新的提交
      • 三方合并:找到2个分支共同的祖先,三方合并

    11、冲突解决

      $ git status  (查看Unmerged paths包含所有冲突文件,打开文件编辑冲突)

      $ git mergetool  (图形化工具解决冲突,退出后,git会询问冲突是否解决,若选择是,git会暂存解决的文件)

      直接编辑冲突文件,然后git add <file>,然后提交

    12、删除分支

      git branch -d <branch>  (仅删除本地,若分支内容未merge,则需要用-D删除)

      git push <remote-name> --delete <branch-name>  (删除远程分支,不能删除远程默认分支)

    13、查看分支

      git branch  (查看本地分支列表,带星号的表示检出分支)

      git branch -v  (查看本地分支列表 & 最后一次提交)

      git branch --merge  (本地已经合并到当前分支的分支,包含当前分支)

      git branch --no-merge  (本地未合并到当前分支的分支,使用git branch -d删除时会报错,需用-D强删)

      git branch -a  (查看本地分支 & 远程分支)

      

  • 相关阅读:
    JavaScript框架设计 一、种子模块
    一、微服务架构概述(spring cloud与docker学习)
    C++之socket编程
    原定于6日的维护延期
    网站将于8月5日或6日进行维护
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/geniushuangxiao/p/12656780.html
Copyright © 2011-2022 走看看