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. Demrystv

    Determined Energetic Motivated Reliable Yes Stick To Victory

  2. 吴裕雄--天生自然 PYTHON数据分析:人类发展报告——HDI, GDI,健康,全球人口数据数据分析

    import pandas as pd # Data analysis import numpy as np #Data analysis import seaborn as sns # Data v ...

  3. ASP.NET Learning Center---学习ASP.NET(1)

    1,学习地址---微软官网 2,目标:学习Razor,以及建立Web应用. 3,https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor ...

  4. Visionpro学习笔记(壹)

    注册4年,第一次发了随笔.我的博客将主要涉及到visionPro软件的学习,labview数据采集方面的思考,c#及VS的学习 此随笔系列主要是关于VisionPro(以后简称VP)的学习及使用. 近 ...

  5. webservice之Http传输错误问题

    1.背景:调用第三方webservice服务,正常调用,但是最近由于第三方更换远程调用地址,并且发布服务器(A)是通过代理的方式请求真实服务器地址(B),于是本以为很简单的将客户端调用地址修改为发布地 ...

  6. 聊聊SNMP协议

    注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 本文源链接:https://www.cnblogs.com/chloneda/p/snmp-protoco ...

  7. C#Linq的10个练习

    1.LINQ的两种语法 LINQ查询时有两种语法可供选择:查询表达式(Query Expression)和方法语法(Fluent Syntax). .NET公共语言运行库(CLR)并不具有查询表达式的 ...

  8. Nginx模块之ngx_http_proxy_module

    ngx_http_proxy_module模块: 示例: location / { proxy_pass http://localhost:8000; proxy_set_header Host $h ...

  9. mybatis及其与hibernate的对比

    1.mybatis是支持普通SQL查询.存储过程.和高级映射的优秀持久层框架 它消除了JDBC代码和参数的手工设置,以及对结果集的检索 2.mybatis使用简单的XML或注解用于配置和原始映射,将接 ...

  10. MySql 小表驱动大表

    在了解之前要先了解对应语法 in 与 exist. IN: select * from A where A.id in (select B.id from B) in后的括号的表达式结果要求之输出一列 ...