zoukankan      html  css  js  c++  java
  • [git]git的分支管理

    最近在折腾git,有感于git这个强大而好用的版本管理工具。

    说说git分支管理的心得体会。

    首先,要有个master主分支:


    Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。

    Git 的 “master” 分支并不是一个特殊分支。 它就跟其它分支完全没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。

    日常开发中,要用到另外一个分支,就是Dev分支,主要用来开发,而Master主要用来重大发布。

    如何创建Dev分支呢?

    简单,用命令:

    git checkout -b dev master

    这句命令的意思是:从Master主分支上创建branch 分支:dev

    那开发过程中,如何把开发分支dev合并到主分支master上呢?

    用两个命令:

    # 切换到Master分支
    git checkout master

    # 对Dev分支进行合并
    git merge --no-ff dev

    上一条命令的--no-ff参数是什么意思呢?

    默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Dev分支。

    再举个例子:

    如果我们有一个这样的版本分支:

    现在你有个紧急的bug要fix,让我们建立一个针对该紧急问题的分支(hotfix branch),在该分支上工作直到问题解决:

    $ git checkout master

    $ git checkout -b hotfix
    现在我们根据master创建了一个hotfix分支,如果我们在这个hotfix分支把问题修复,
    并提交:

    $
    git commit -a -m 'fixed the broken email address'

    这时候,分支图变成:

    现在怎么把hotfix的分支合并到master上来呢?

    执行命令:

    首先用checkout命令切换到master分支:

    $ git checkout master

    然后,把hotfix分支合并到master:
    $
    git merge hotfix

    这个时候,分支图是这样的:


    关于这个紧急问题的解决方案发布之后,你准备回到被打断之前时的工作中。 然而,你应该先删除 hotfix 分支,因为你已经不再需要它了 —— master 分支已经指向了同一个位置。 你可以使用带 -d 选项的 git branch 命令来删除分支:

    $ git branch -d hotfix

    这时候,要打个tag:

    git tag -a 1.2 (使用-u/-s/-a参数会创建tag对象,而非软tag)

    一定要为master上的这个新提交打TAG(记录里程碑)

    标签tag是针对某一时间点的版本做标记,常用于版本发布。

    本人精通java高并发,DDD,微服务等技术实践,专注java,rust技术栈。 本人姓名郭莹城,坐标深圳,前IBM架构师、咨询师、敏捷开发技术教练,前IBM区块链研究小组成员、十多年架构设计工作经验,《区块链核心技术与应用》作者之一, 现聚焦于:区块链创投与交易所资源对接和技术咨询。 工作微信&QQ:360369487,区块链创投与交易所资源对接,加我注明:博客园+对接,技术咨询和顾问,加我注明:博客园+顾问。想学习golang和rust的同学,也可以加我微信,备注:博客园+golang或博客园+rust,谢谢!
  • 相关阅读:
    二叉树非递归先中后序遍历 及 非递归交换二叉树两个孩子的位置
    COM 学习小记录
    Linux 信号量 生产者消费者小例题
    打印数字 形状有点得味
    (链表)链表倒序
    C++ 数组名作为函数参数 都是我的错
    进程 线程
    《C++ Qt 设计模式》8|15拼图 小游戏的简单实现。拜托,别乱点!
    PMAC运动程序例程(一)
    中国获得2022年冬奥会举办权【经济学人】
  • 原文地址:https://www.cnblogs.com/gyc567/p/5496875.html
Copyright © 2011-2022 走看看