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. 题解【CF1311F Moving Points】

    \[ \texttt{Preface} \] 赛时,把 " 任意时刻 " 理解成 " 整数时刻 " 了,看起来一脸不可做的亚子,还各种推式子. 话说我为什么觉得 ...

  2. win10系统vscode c/c++配置环境

    使用vscode可以完成轻量级的编译器环境搭建,使用vscode 搭建完整的c++开发环境见下网站: https://www.bilibili.com/video/av18436497/?spm_id ...

  3. go 总结常用函数

    golang截取字符串 对于字符串操作,截取字符串是一个常用的, 而当你需要截取字符串中的一部分时,可以使用像截取数组某部分那样来操作,示例代码如下: package main import &quo ...

  4. MySQL 8 日期计算

    timestampdiff()函数: 按照需要的单位计算两值之间的时间差,比如: select timestampdiff(year, date_1, date_2) from table_name; ...

  5. 单向链表的简单Java实现-sunziren

    写在前面,csdn的那篇同名博客就是我写的,我把它现在在这边重新发布,因为我实在不想用csdn了,那边的广告太多了,还有就是那个恶心人的“阅读更多”按钮,惹不起我躲得起. 最近面试的过程中,发现有的公 ...

  6. IDEA如何快速搭建Java开发环境

    作为IntelliJ IDEA mac新手,IDEA如何快速搭建Java开发环境呢?今天小编就给大家带来了IntelliJ IDEA mac使用教程,想知道IDEA如何快速搭建Java开发环境? 全局 ...

  7. js替换时,空格被替换为双引号

    替换代码 str.replace(/\"/g, "'") 将双引号替换为单引号,如果字符串中,存在space(空格)时,使用以上语句将会导致空格被替换为双引号,可以使用如 ...

  8. JavaScript实现动态打字效果

    废话不多说,上代码~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  9. 树莓派3b 换国内源 更新源

    在国内要更新源的时候,因为是国外的源,总会出现网速太慢的问题, 以下是对于安装了,2017-11-29-raspbian-stretch 系统源 更换最好用root登陆操作 sudo passwd r ...

  10. PAT (Basic Level) Practice (中文)1056 组合数的和 (15 分)

    给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字.要求所有可能组合出来的 2 位数字的和.例如给定 2.5.8,则可以组合出:25.28.52.58.82.85 ...