• Git 学习(二)---- 分支及协作开发


    Git 学习(二)---- 分支及协作开发


    分支理解及概述


      分支是什么? 分支可以理解成对某一分支的副本.

      比如说我们默认创建的分支就是 master,master的代码得一直在线上运行,如果出现了紧急bug,那么创建一个副本(分支 hot-fix),在副本上进行随意修改。master 合并 最终 hot-fix 的版本,达到优化bug且不影响程序线上运行的效果。

    在这里插入图片描述

      在版本控制过程中,同时推进多个任务,每个任务都创建分支,开发分支的代码不会影响主线分支的运行。底层通过指针引用实现。

    在这里插入图片描述


    分支的好处


    1、同时并行推进多个功能的开发,提高开发的效率

    2、各个分支在开发的过程中互不影响,如果某一个分支开发失败,不会对其他分支造成影响,直白的分支删除重新开始即可。


    分支(branch)的相关操作


    (1)查看分支

    git branch -v
    
    • 1

    可以查看所有分支及当前所在的版本

    在这里插入图片描述

      master 前面有个 * 号,同时为绿色,表示当前指向的是 master 分支,同时后面显示该分支当前处在的版本, 创建分支 hot-fix 和当前分支内容是一样的,可以看作是当前master的副本


    (2)git branch 创建分支

    git branch [分支名]
    
    • 1

    创建了当前分支 master 的分支(副本) hot-fix

    在这里插入图片描述

    创建分支 hot-fix, 可以在 hot-fix 进行独立开发,最终合并即可。


    (3)git checkout 切换分支

    git checkout [分支名]
    
    • 1

    在执行先查看所有分支的状态

    在这里插入图片描述

    head 指向 master

    执行切换分支,查看状态

    在这里插入图片描述

    此时的状态,画个图

    我们在刚创建 hot-fix 分支,相当于 hot-fix 指向了 master之前的版本,拥有了之前master的内容

    在这里插入图片描述

    切换到了 hot-fix 分支,head 指针发生改变

    在这里插入图片描述

    如果在 hot-fix 分支上开发代码形成新的版本,首先master 无法直接拿到,必须master来合并才行

    在这里插入图片描述


    (4)git merge 合并分支

    git merge [分支名]
    
    • 1

      我们模拟 hot-fix 分支修改bug,改变hello.txt 内容,注意此时是在 hot-fix 分支上进行修改,之后我们还需要提交到本地库,才算提交成功,hot-fix 有了新的版本

    在这里插入图片描述

    此时 hot-fix 分支已经修改完毕了,生成了新的版本,(bug修改完毕)

    在这里插入图片描述

    master 作为上线的项目,需要把修复好的代码作为自己的下一个版本更新,就需要合并 hot-fix 这个分支


    (1)切换回 maser 分支

    在这里插入图片描述

    切换成master分支后,当前版本依然为master的之前的版本,需要合并进行更新

    在这里插入图片描述


    (2)合并 hot-fix 分支

    git merge hot-fix
    
    • 1

    在这里插入图片描述

    发现,合并之后,master最新版本即为 hot-fix 的提交的版本,同时查看文件,master更新成功!

    在这里插入图片描述

    head指针指向 master,同时 master 因为合并 指向hot-fix 的最新版本作为 自己的最新版本。


    (5)合并冲突


      如果master 又更新了,hot-fix 也更新了,而且更新的内容不同,master合并的时候本应该直接拿 hot-fix的最新版本,但是此时合并不知道要哪个更新的版本了!不知道要谁了,所以需要我们手动进行选择。我们在再根据需要在文本编辑器中进修修改即可。


    团队间协作开发


    一个团队的代码开发人员是怎么进行协作开发呢?

    在这里插入图片描述

    都是从远程仓库(GitHub、Gitee)拿代码

    clone 是从0到1,从一无所有开始拿到所有代码

    pull 相当于有之前的版本,从远程仓库进行更新一波

      程序员1 在本地开发一个程序之后,放到远程代码仓库了,让其他人进行其他功能模块的开发。程序员2 通过 远程代码仓库 clone下来 之前开发的程序到自己的本地库中,自己进行开发,开发完之后,提交上传到 远程代码中心(团队之间上传需要协作权限),程序员1 看别人开发完了,自己又想在开发的好一点,从代码中中心pull下来代码(更新),在进行后续的开发。


    跨团队协作开发

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    大数据信用报告查询应该选什么样的平台?
    List-带头结点的双向循环链表
    TreeUtils工具类一行代码实现列表转树 实战Java8 三级菜单 三级分类 附视频
    WAMP服务器对python进行配置
    C和指针 第14章 预处理器 14.4 文件包含
    Node.js-初识Node.js与内置模块
    理解JVM
    idea 启动项目报错 Command line is too long
    【C++从0到王者】第三十七站:模拟unordered_map和unordered_set
    前端基础之《NodeJS(4)—Buffer缓冲区》
  • 原文地址:https://blog.csdn.net/rain67/article/details/126738765