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. spss——定义变量

    在变量视图 1,名称:必须以文字.字母.@ 这三类命名, 不能以数字.特殊字符.spss保留字等命名 2,类型:数字.逗号.点.字符串等,(字符数) 3,宽度 4,小数位数 5,标签:对名称进一步解释 ...

  2. es5和es6创建新数组的方法

    //es5 let array = Array(5) let array = [] //es6 1.let array = Array.of(1,2,3,4,5) 2.let array = Arra ...

  3. css3使用animation属性实现炫酷效果

    animation-name 动画名称,可以有多个值,用逗号隔开,表示绑定了多个动画 animation-name属性为动画指定一个名称 animation-name兼容主流的浏览器,不过还是需要加前 ...

  4. Jstree在加载时和加载完成的回调方法-sunziren

    1.有时候在使用jstree的时候我们想在它加载完成后立刻执行某个方法,于是我们可以用下面这个jstree自带的回调: .on('ready.jstree', function(event, obj) ...

  5. 在windows系统下,配置vue项目一键启动文件

    我的项目由客户端.后台管理.数据库和服务器三部分组件,每次启动项目都要一个一个启动,挺麻烦的,现在写一个.bat文件来批处理命令. 这个是我的启动文件内容. 第一行运行的我wampServer服务器, ...

  6. 【jQuery实例】Ajax登录页面

    登录界面是信息系统提供的必备的功能,是提供给用户提供维护信息的接口.接下来,我来带领大家打造一个漂亮.安全的登录界面,使用的技术是ASP.NET+jQuery 先来看看预览效果   Ajax登录重点在 ...

  7. 写Blog的准备工作Window Live Writer

    以下是博客园的帮助博客: Windows Live Writer配置步骤 感觉里面的几篇推荐文档都可以看一下,至于代码高亮插件,个人选择的还是SyntaxHighlighter. 一. 关于写blog ...

  8. idea 代码没有被svn控制

    背景 开发从svn上拉下来的代码,上传时发现idea的快捷键(ctrl+T)没反应以及菜单栏中没有相关按钮. 原因 发现项目当前文件夹里没有 .svn 隐藏文件夹,所以当前文件夹就没有被idea识别继 ...

  9. [AH2017/HNOI2017] 影魔 - 线段树

    #include<bits/stdc++.h> #define maxn 200010 using namespace std; int a[maxn],st[maxn][2],top,L ...

  10. pandas玩转excel-> (1)如何利用pandas创建【行,列,单元格】

    import pandas as pd #------新建单元格的方法一:通过先创建字典的形式 #可以先新建一个字典d={'x':100,'y':200,'z':300} #打印字典的索引print( ...