• git代码管理 分支相关 新建dev、hot分支,分支协同操作


    初始化仓库后 会自动为我们创建master分支,我们也可以自己创建分支,每一个分支都有自己的一套工作区,暂存区,仓库区。

    问题情景1

    此时正在dev分支上开发新的功能,如果线上产生了一个bug,使用stash存储下在dev开发到一半的功能,然后切换到master分支上新建一个修复bug的分支 fix_bug,在fix_bug分支上修复好bug后再合并到master分支上,此时再切换回dev分支上继续开发功能,开发完成后将dev分支合并到master分支上,此时岂不是产生了冲突?

    是的,会产生冲突,如果dev上开发的功能和fix_bug修复bug对同一个文件都进行了操作,此时git不知道该保留哪一个,那么便会产生冲突,需要我们手动保留内容。那可不可以在dev上恢复stash之前,先将master分支合并到dev上呢?

    我们首先新建一个dev分支,可以使用git checkout -b dev
    在这里插入图片描述

    git checkout -b dev 用于创建并切换到名为 “dev” 的新分支。
    git checkout:这是一个用于在 Git 中切换分支或恢复文件的命令。
    -b:这是 git checkout 命令的一个选项,用于创建并切换到一个新的分支。
    dev:这是指定的分支名称,即你希望创建的新分支的名称。

    修改1.txt文件 添加一行“开发新功能”,此时线上运行遇到了bug,我们首先使用git的stash贮存功能,git stash
    在这里插入图片描述
    git stash可以让我们暂时将修改的1.txt中的内容存储起来,这样切换到其他分支不会受到影响

    git stash 命令用于将当前工作目录中的更改暂存(存储)起来,以便你可以在切换到其他分支或应用其他更改时保留这些更改。
    执行 git stash 命令后,Git 会做以下操作:
    将暂存区和工作目录中的未提交更改保存为一个 stash。
    清空暂存区,使其与最新的提交一致。
    这样,你就可以切换到其他分支或进行其他操作,而不会受到未提交的更改的影响。
    如果你想给 stash 添加一个描述信息,可以使用 -m 参数,例如:
    git stash save -m “My stash description”
    要查看已保存的 stash 列表,可以使用 git stash list 命令。
    要恢复(应用)最新的 stash 并将其从 stash 列表中删除,可以使用 git stash pop 命令:
    git stash pop
    如果你只想恢复(应用)最新的 stash,但不删除它,可以使用 git stash apply 命令:
    git stash apply
    如果你有多个 stash,并且想根据标识符选择恢复特定的 stash,可以使用 git stash apply 或 git stash pop 命令,后面跟上对应的 stash 标识符。
    需要注意的是,stash 是按照存储的顺序进行堆叠的,你可以根据需要应用或删除特定的 stash。

    我们使用git checkout main,重新切换到main分支,使用git checkout -b fix_bug新建并切换到fix_bug,在该分支上修复线上的bug,我们在1.txt内容中新增一行"修复bug",bug修复完成后,使用git commit -am "修复bug"提交到fix_bug分支上的仓库区。

    git commit -am “修复bug” 这个命令的效果相当于以下两个步骤的组合:

    git add . # 将所有已被 Git 跟踪的文件的更改添加到暂存区
    git commit -m “修复bug” #创建一个新的提交记录并指定提交消息
    -a:这是 git commit 命令的一个选项,表示自动将所有已经被 Git 跟踪的文件的更改都加入到提交中。这样你就不需要使用 git add 命令来将修改的文件添加到暂存区。
    请注意,-a 选项只会将已经被 Git 跟踪的文件的更改添加到提交中,如果有新添加的文件或未被跟踪的文件,你仍然需要使用 git add 命令将它们添加到暂存区。

    在这里插入图片描述

    然后我们重新切换到main分支,然后合并fix_bug分支,使用git merge fix_bug
    在这里插入图片描述
    此时修改好bug,我们切换回dev分支进行新功能的开发。我们首先将修复好bug的main分支合并到dev分支中,
    在这里插入图片描述
    然后使用git stash pop重新恢复我们刚刚开发的功能
    在这里插入图片描述
    此时发生了冲突,在1.txt中文件显示如下,需要我们去手动修改
    在这里插入图片描述
    修改后1.txt如图
    在这里插入图片描述
    使用git add 1.txt指令将修改后的文件标记为已解决冲突的状态,再次提交
    git commit -m "合并冲突,开发新功能"
    在这里插入图片描述
    切换到main分支并合并
    在这里插入图片描述
    然后我们也可以删除掉fix_bug分支了,使用git branch -d fix_bug指令
    在这里插入图片描述
    此时我们bug修复了,然后新功能开发完成后也合并到了main版本,可以等待上线了。在这个过程中,我们在dev分支恢复贮存的时候产生了冲突,需要我们进行手动保留。即git不知道该保留哪个内容时(在本文中是“开发新功能”和“修复bug”),会发生冲突,需要我们决定和手动修改保留。

  • 相关阅读:
    华为政企园区网络交换机产品集
    Docker
    TMS320F28069之CAN通信
    热赛道上的冷思考:乘数效应才是东数西算的根本要求
    vue中双向数据绑定v-model的理解
    安全关闭Tcp连接
    python连接数据库
    【Java】线程状态
    设置差分对的两种方法
    C#写入Datetime到SQL server
  • 原文地址:https://blog.csdn.net/qq_45862085/article/details/133311425