1. 概述

    1. 简单描述以下, git branch
    2. 讲解的目的, 只是方便新手入门, 基本都是最简单的操作
      1. 所以东西可能不全

        1. 一是 我不理解
        2. 二是 有的东西出现, 可能会让新手产生误解
  2. 准备

    1. os

      1. win10
    2. git
      1. 2.20.1.windows.1
    3. 工程
      1. 一个 git 项目的工程 即可

1. 分支

  1. 概述

    1. 简单介绍分支
  2. 分支

    1. 概述

      1. 一种方法
      2. 一个代码版本
    2. 方法

      1. 软件开发的基本方法

        1. 从 主线 分离出来的一条 独立的开发先
      2. 特性

        1. 隔离

          1. 分支可以让主线不受到干扰
          2. 分支也可以保存一个相对稳定的版本, 方便继续修正, 而不影响主线
      3. 使用

        1. 隔离特性

          1. 防止新特性, 干扰到主线
        2. 隔离 bug
          1. 一些不太好解的 bug, 也可以使用 分支, 隔离出来
        3. 隔离 版本
          1. 可以专门拉一个旧版本的分支, 在这个分支上修改, 并且不影响新版本
        4. 隔离 阶段
          1. 可以使用不同的分支, 代表 开发, 测试, 线上版本
      4. 副作用

        1. 并行开发

          1. 既然都隔离得那么开了, 并行工作, 就是自然而然的事了
    3. 代码版本

      1. 创建分支后, 获得的 代码产物
  3. 感觉

    1. 分支本质上是一种思想

      1. 目的是 通过隔离, 减少 互相干扰
    2. 基于这种思想, 我们来操作分支

2. 命令

1. 查看分支

  1. 概述

    1. 查看现有分支, 当前分支
  2. 命令

    # 结果
    # * <branchName> 这个表示, 当前分支
    > git branch

2. 创建分支

  1. 概述

    1. 创建新分支
  2. 命令

    > git branch <branchName>
    # 创建完成后, 需要切换过去
    # 后面有 创建并切换 的方法, 不要着急
    > git checkout <branch>
  3. 分支名称

    1. 概述

      1. 分支的名字, 也不是 随便起的
    2. 字符集

      1. 非法

        ~
        ^
        :
        ?
        *
        [
        ..
        各种空白字符
      2. 合法

        1. 非法

          # 不能用这些东西开头
          /
          .
          -
          # 不能用这些东西结尾
          /

3. 更详细的查看 分支

  1. 概述

    1. 一种更详细查看分支的方法
  2. 命令

    # 可以查看全部, 或者只查看某个特定分支
    # 这个命令, 暂时不做解释, 是那种不好讲明白, 但是一用就懂的类型
    > git show-branch [branchName]
  3. 简述

    1. 显示结果

        1. 各个分支

          1. 名称
          2. 最新提交的 comment
          3. 当前状态
          4. 左边还有一个 图例
        1. 提交记录

          1. 首先是 图例
          2. 分支名
          3. 提交 comment

4. 检出分支

  1. 概述

    1. 检出一个别的分支
  2. 场景1: 简单检出一个别的分支

    1. 命令

      # 确保当前分支的所有变动, 已经提交
      > git checkout <branchName>
    2. 结果

      1. 追踪文件的变化

        1. 全部以 新分支 为准
  3. 场景2: 追踪文件有修改, 但是没有提交

    1. 命令

      1. 同 场景1
    2. 结果

      1. git 拒绝切换
      2. git 会提示你, 有内容需要提交, 防止修改丢失
    3. 其他

      1. 如果真的有内容不想提交

        1. -f 强制切换
        2. 借助 stash
  4. 场景3: 分支合并

      1. 这个等到后面 合并 的时候, 一起将
  5. 场景4: 创建新分支, 并切换过去

    1. 命令

      # 以当前分支代码为基础, 切换分支
      > git checkout -b <newBranchName>
  6. 场景5: 无名分支

    1. 场景

      1. 有的时候, 会莫名其妙切换到一个 无名分支

        1. 其实这些情况还是有规律的, 只是我们不熟悉
    2. 操作

      1. 确认当前位置

        1. 直接查看分支即可
      2. 保留操作

        1. 命令

          1. 使用 场景4 的命令即可
      3. 丢弃操作

        1. 命令

          1. 直接切换到别的分支即可

5. 删除分支

  1. 概述

    1. 删除不需要的分支
  2. 命令

    # 首先, 不能删除 当前分支
    > git branch -d <branchName>

ps

  1. ref

    1. Git 版本控制管理(第2版)

      1. 翻译得不太好, 但是内容值得一看
      2. 比 pro git 稍微好入门一些
      3. 我自己整理的东西, 应该不会完全按照它的思路来
  2. 问题: 分支命名

    1. 会出现一些问题

      1. 场景

        1. 当前已经有了 test 分支
        2. 我想创建一个分支名为 test/v1
      2. 结果

        > git branch test/v1
        fatal: cannot lock ref 'refs/heads/test/v1': 'refs/heads/test' exists; cannot create 'refs/heads/test/v1'
    2. 命名分支, 是否有一个 最佳实践

      1. 这个我简单翻阅了下 github 的几个大项目, 目前没有找到
  3. 切分支, 应该也是有风险的

    1. 追踪文件

      1. 这块应该还行
    2. 未追踪文件
      1. 这个东西, 我暂时没有尝试

        1. 书上说, 不会管, 保留原样

          1. p92
  4. 后续

    1. 应该是 分支合并 相关的内容吧
  5. 其他

    1. 2020 年的第一篇技术向博客, 来的有点晚了
    2. 感觉回不到之前那种 高产赛母猪 的状态了

Git - 08. git branch的更多相关文章

  1. [Git]08 如何自动补全命令

     [Git]08如何自动补全命令 如果你用的是 Bash shell,可以试试看 Git 提供的自动完成脚本.下载 Git 的源代码,进入 contrib/completion 目录,会看到一个g ...

  2. [git] 关闭 git branch 的pager

    高版本的git做了pager的调整. git diff git log git branch 等命令都用了pager, 默认的pager用了less 在我的应用里, 通常branch只有那么3,5个. ...

  3. Merge git repo into branch of another repo

    git 两个repo merge You can't merge a repository into a branch. You can merge a branch from another rep ...

  4. git clone all branch and create a empty branch

    /******************************************************************** * git clone all branch and cre ...

  5. Git merge一个branch到另一个branch

    在项目开发过程中,需要merge一个branch (branch名 taskBranch) 到另一个名为develop 的branch 方法: 先保证当前停留在develop的branch上 然后执行 ...

  6. git clone指定branch或tag

    git clone指定branch或tag发布时间:October 28, 2018 // 分类: // No Comments 取完整: git clone https://github.com/a ...

  7. git pull的时候提示git pull <remote> <branch>

    yuanqiao@yuanqiao-PC MINGW64 /h/WorkSpace/git/dadeTest (dev)$ git pullremote: Enumerating objects: 7 ...

  8. Git:Git初体验——Git安装配置

    作为即将成为一个程序员的男人,一直在听别人说Git多好多好,之前也随便了解了一些,但是始终没有决心去学会.现在大四了,只有毕设和一门开学六七周只去过一次课的全员必修课外,也没有什么事情做,何不去做这些 ...

  9. Fighting regressions with git bisect---within git bisect algorithm

    https://www.kernel.org/pub/software/scm/git/docs/git-bisect-lk2009.html Fighting regressions with gi ...

随机推荐

  1. 使用expect实现自动交互,shell命令行自动输入

    背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作 ...

  2. SQL Server无备份误删数据的恢复

    在正式生产数据库中,因为客户现场管理不规范产生了一条错误数据,由于自身睡眠不佳加上客户方言表达,将编号记错,在没有备份的情况下,直接连远程数据库执行了delete操作. 由于备份设置的是每日0点,当天 ...

  3. 浅谈python的第三方库——numpy(终)

    本文作为numpy系列的总结篇,继续介绍numpy中常见的使用小贴士 1 手动转换矩阵规格 转换矩阵规格,就是在保持原矩阵的元素数量和内容不变的情况下,改变原矩阵的行列数目.比如,在得到一个5x4的矩 ...

  4. 视频会议系统MCU服务器视频传输处理模式

    视频会议系统MCU服务器视频传输处理模式 视频会议系统的组成主要包括终端.MCU服务器.网守等,其中的MCU服务器是整个系统的核心,视频会议系统的性能很大程度取决于MCU服务器的性能,因此MCU服务器 ...

  5. [USACO19OPEN]Valleys P

    题意 洛谷 做法 用并查集维护区域,剩下的就只用判是否有洞就好了 然后手玩出一个结论:凸角为\(+1\),凹角为\(-1\),和为\(sum\),洞数\(h\),满足\(sum=4-4h\) 位置\( ...

  6. 【剑指Offer】63、二叉搜索树的第k个结点

    题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 题解一:DFS 借助栈实现 // 中序非递归 public ...

  7. Java-算式填符号

    题目: 某批警察叔叔正在进行智力训练:1 2 3 4 5 6 7 8 9 = 110 请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号).之间没有填入符号的数 ...

  8. iptables (一) 主机防火墙和网络防火墙

    Firewall : 防火墙,隔离工具:工作于主机或网络的边缘,对于进出本主机或网络的报文根据事先定义好的检测规则作匹配,对于能够被规则所匹配到的报文做出相应处理的组件:有主机防火墙和网络防火墙 Ip ...

  9. PAT (Advanced Level) Practice 1036 Boys vs Girls (25 分)

    This time you are asked to tell the difference between the lowest grade of all the male students and ...

  10. vue动态绑定图片和背景图

    1.动态绑定图片 <img class="binding-img" :src="require('../assets/images/test.png')" ...