git快速入门(3)__ 分支创建、切换和合并

2023-05-16

1.理解分支

为了便于理解,大家可以粗略的将分支认为就是一个代码的副本。

如果我们同时在一个代码上开发多个功能。还要修改一些bug,团队成员协作过程中,必然会出现相互影响。

假如某个同事提交了一个错误的代码,可能会导致其他更新了代码的同事都无法正常编译。互相影响。

一个比较好的做法是,我们开发一个新的功能,或者修改一个bug时,我们可以拉出一个分支。在这个分支上的操作不会影响其他同事的工作,待你的工作完成后,你可以将代码再合并回最新代码中。

2. 常见分支master 、develop、release、hotfix、feature的用处

1)主分支master 对外发布版本的分支

当我们最初向git提交时,会自动产生一个master分支

主分支一般保存对外发布的版本。

2)develop分支 开发分支

为了保持主分支上代码的稳定(主分支通常保存向用户发布的版本),开发工作不在主分支上进行,而是在develop分支上进行。

当develop完成开发任务后,黑冰到master分支

3)feature分支

所有的团队成员在develop上工作,为了保持开发分支的稳定性,每个功能开发时都应拉出一个分支,是基于develop分支,当开发到完成后合并到develop

在开发过程中,当要开发某个功能时,会拉出一个功能分支

4)hotfix分支

当修改bug时,也可以从开发分支(develop)上拉出分支,在分支上修改,完成后,再讲代码合并到开发分支(develop)

3.git分支命令

git branch -v 查看分支

git branch 分支名 创建分支

git checkout 分支名 切换分支

git checkout -b 分支名 创建并切换到分支(等价于 git branch 分支名+git checkout 分支名)

git merge 分支名 将指定的分支合并到当前分支

git branch -d 分支名 删除指定名称的分支(分支被合并后才允许删除,如果要删除,需要使用-D 强制删除)

4. git分支实操

1) 准备工作

为了方便进行后续的代码合并以及冲突的测试,请大家克隆你的码云上的最新的cmo_week04 到本地文件夹“week502”。

  1. 请大家使用自己的gitee账号登录gitee.com

  1. fork 仓库https://gitee.com/caohongxing7604/cmo_week04 到你的gitee上

  1. 创建一个文件夹week502

  1. 在week502de父目录中打开git命令窗口

  1. 执行 git clone ,记得把中间的地址改为你的仓库地址奥

git clone https://gitee.com/caohx666/cmo_week04 week502/

2) git branch 查看分支

进入到刚才创建的week502目录,右键点击 git Bash here.. 打开git命令窗口,

输入:git branch -v

这个命令练习起来,后面我们要反复使用该命令奥!

3)git branch 分支名 创建分支

下面我们的实验创建develop分支,然后再develop上再依次创建2个分支:feature_add分支 和feature_ sub 分支,分别用来开发add功能和sub功能。

git branch develop 创建develop分支

git checkout develop 切换到develop分支

git branch feature_add 创建一个名为add的分支,注意,此时仍在原来的分支上

git branch feature_sub 创建另一个名为sub的分支,用来开发 sub 功能

git branch 查看分支情况

4)git checkout 分支名 切换分支

上一步我们已经创建了分支。

在这一步,我们要模拟两位开发切换到他们的分支,提交代码到各自的分支上。

首先模拟开发1切换到分支feature_add上提交代码,并提交到本地仓库

  1. 下面我们切换到feature_add分支上,并添加一个 add.txt 的文件,

  1. feature_add分支上,并在001.txt的文件的第六行之后删除掉,末尾添加add函数

int add(int x , int y)

{

return x+y;

}

  1. 提交以上修改到本底裤,日志为:xxx 分支git branch feature_add 上修改 新增了add函数

然后模拟开发2切换到分支feature_sub上提交代码,并提交到本地仓库

  1. 下面我们切换到feature_sub分支上,修改001.txt,将5行之后的内容删除,加上sub函数

int sub(int x , int y)

{

return x-y;

}

  1. .提交分支 feature_sub 上修改,日志为:xxx 分支git branch feature_sub 上修改 新增了sub函数 xxx为学生姓名

需要注意的是,当前分支如果有未提交到暂存区的修改,切换分支会有错误提醒,提示你提交修改或者保存文件

我们此时,你可以将修改commit到本地仓库,

如果你觉得还没有修改好,那你也可以使用git stash 将其隐藏,以后再切换回分支时,再将其恢复

5)git merge 分支名 合并分支

合并分支时,需要先切换到目标分支,然后再合并。

为了减少后期冲突,合并前,建议git pull 从服务器上拉取最新代码。

(1) 将分支 git branch feature_add 合并到主干

我们切换到develop分支上,将feature_add 分支合并到develop

(2)将分支git branch feature_sub 也合并到主干

我们切换到develop分支上,将feature_add 分支合并到develop

合并过程中,由于feature_add 和feature_sub分支修改了相同行,提交时会提示冲突,需要手动解决冲突。

如果你安装了 TortoiseGit。则可以通过图形化工具来解决冲突,如果没有,直接查看001.txt也可以

手动解决冲突后,再次 添加到暂存区后,提交到本地库

6)将develop、feature_add feature_sub分支提交到远程仓库

如果愿意,大家也可以将分支推送到远程分支

6)git branch -d 分支名 删除分支

删除分支前,需要切换到其他分支

7)查看日志,截屏

git log --oneline --graph --decorate --all 是常用的日志查看命令

截屏日志结果

4.gitee仓库的删除

在确认窗口中,输入确认信息后,点击【确认删除】,则可以成功删除仓库

在验证码确认窗口上输入账户密码后,点击【验证】

5.git 冲突解决

git pull --allow-unrelated-histories

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git快速入门(3)__ 分支创建、切换和合并 的相关文章

随机推荐

  • 【每天一个 Linux 命令】tree命令

    1 前言 本文主要讲解Linux系统上的tree命令的详细使用方法 tree 命令是一个小型的跨平台命令行程序 xff0c 用于递归地以树状格式列出或显示目录的内容 它输出每个子目录中的目录路径和文件 xff0c 以及子目录和文件总数的摘要
  • 【每天一个 Linux 命令】wget 命令用法详解

    Linux wget是一个下载文件的工具 xff0c 它用在命令行下 对于Linux用户是必不可少的工具 xff0c 尤其对于网络管理员 xff0c 经常要下载一些软件或从远程服务器恢复备份到本地服务器 如果我们使用虚拟主机 xff0c 处
  • 【每天一个 Linux 命令】Linux命令ls和cp

    ls xff08 英文全拼 xff1a list files xff09 命令用于显示文件目录列表 xff0c 和Windows系统下DOS命令dir类似 当执行ls命令时 xff0c 默认显示的只有非隐藏文件的文件名 以文件名进行排序及文
  • 【每天一个 Linux 命令】Linux命令 mkdir,cat,touch,vi/vim

    文章目录 mkdir命令语法mkdir命令示例cat命令语法cat命令示例touch命令语法touch命令示例vi与vim的区别vi vim 的使用命令模式 xff1a 输入模式底线命令模式 vi vim 使用实例使用 vi vim 进入一
  • 【LeetCode刷题日记】1576. 替换所有的问号

    题目 给你一个仅包含小写英文字母和 39 39 字符的字符串 s xff0c 请你将所有的 39 39 转换为若干小写字母 xff0c 使最终的字符串不包含任何 连续重复 的字符 注意 xff1a 你 不能 修改非 39 39 字符 题目测
  • 【LeetCode刷题日记】71. 简化路径

    题目 给你一个字符串 path xff0c 表示指向某一文件或目录的 Unix 风格 绝对路径 xff08 以 39 39 开头 xff09 xff0c 请你将其转化为更加简洁的规范路径 在 Unix 风格的文件系统中 xff0c 一个点
  • 【C/C++服务器开发】文件,文件描述符,I/O多路复用,select / poll / epoll 详解

    文章目录 一 前言1 文件的概念2 文件描述符和文件指针文件描述符文件描述符和文件指针的区别文件描述符太多了怎么办 二 I O多路复用1 I O多路复用的由来不要打电话给我 xff0c 有需要我会打给你I O多路复用 xff0c I O m
  • 【LeetCode刷题日记】1614. 括号的最大嵌套深度

    题目 如果字符串满足以下条件之一 xff0c 则可以称之为 有效括号字符串 xff08 valid parentheses string xff0c 可以简写为 VPS xff09 xff1a 字符串是一个空字符串 34 34 xff0c
  • openwrt 环境下通过3G/4G dongle发送短信

    1 首先openwrt环境中编译gcom工具 2 参考网站 https www xuebuyuan com 1046229 html http dev archive openwrt org ticket 18424 学习到如何通过gcom
  • 【每天一个 Linux 命令】文件目录操作命令大全

    文章目录 cd命令语法cd命令使用示例pwd命令语法pwd命令示例rm命令语法rm命令使用示例mv命令语法mv命令使用示例more命令语法more命令使用示例head命令语法head命令使用示例tail命令语法tail命令使用示例 前面的一
  • 【LeetCode刷题日记】89. 格雷编码

    题目 n 位格雷码序列 是一个由 2n 个整数组成的序列 xff0c 其中 xff1a 每个整数都在范围 0 2n 1 内 xff08 含 0 和 2n 1 xff09 第一个整数是 0 一个整数在序列中出现 不超过一次 每对 相邻 整数的
  • 【每天一个 Linux 命令】Linux文件和目录属性

    文章目录 Linux 目录结构Linux文件类型与扩展名linux文件属性详解 Linux 目录结构 对于每一个Linux学习者来说 xff0c 了解Linux文件系统的目录结构 xff0c 是学好Linux的至关重要的一步 xff0c 深
  • 【每天一个 Linux 命令】文件查找命令总结(which命令、whereis命令、locate命令、find命令)

    文章目录 which命令语法which命令使用示例whereis 命令语法whereis命令使用示例locate 命令语法locate命令使用示例find 命令语法find命令使用示例find命令之exec使用示例find 命令的参数详解
  • 【每天一个 Linux 命令】文件压缩和解压命令:tar命令和gzip命令

    文章目录 tar命令语法tar命令使用示例gzip命令语法gzip命令使用示例 tar命令语法 通过SSH访问服务器 xff0c 难免会要用到压缩 xff0c 解压缩 xff0c 打包 xff0c 解包等 xff0c 这时候tar命令就是是
  • 从程序员的角度,来拆解物联网系统中的开发工作

    文章目录 物联网系统 设备端的开发 1 不需要网关的设备2 需要网关的设备3 WiFi 类设备 物联网平台开发 业务应用开发 推荐一篇好文 xff1a 从程序员的角度 xff0c 来拆解物联网系统中的开发工作 可以结合我之前的一篇文章来看
  • 嵌入式数据库(Embedded Database)

    嵌入式数据库 xff08 Embedded Database xff09 和数据库服务器 xff08 Database Server xff09 像Oracle Sybase MySQL和SQL Server这些大家熟知的数据库都属于数据库
  • 【LeetCode刷题日记】306. 累加数

    题目 累加数 是一个字符串 xff0c 组成它的数字可以形成累加序列 一个有效的 累加序列 必须 至少 包含 3 个数 除了最开始的两个数以外 xff0c 字符串中的其他数都等于它之前两个数相加的和 给你一个只包含数字 39 0 39 39
  • Linux文本处理grep详解

    在 Linux 中 xff0c 文本处理无非是对文本内容做查看 修改等操作 本章将介绍Linux中常用的文本处理命令 xff0c 以及被称为Linux三剑客的 grep sed 和 awk 命令 有读者可能会问 xff0c 处理文本内容 x
  • Linux Shell基础教程

    文章目录 Shell简介 xff1a 1分钟理解什么是ShellShell 是一种脚本语言 Shell对于运维人员的重要性Shell Python 和 Perl1 Perl 语言2 Python 语言3 Shell 几种常见的Shell x
  • git快速入门(3)__ 分支创建、切换和合并

    1 理解分支 为了便于理解 xff0c 大家可以粗略的将分支认为就是一个代码的副本 如果我们同时在一个代码上开发多个功能 还要修改一些bug xff0c 团队成员协作过程中 xff0c 必然会出现相互影响 假如某个同事提交了一个错误的代码