4.1、分支的概述

在版本控制过程中,当需要同时推进多个任务时,可以为每个任务创建的单独分支。

虽然分支的底层实现是指针的引用,但是初学阶段可以将分支简单理解为副本,一个分支就是一个单独的副本。

使用分支,意味着从原来的主干上分离开,在分支上做的任何改动,在合并前都不会影响到主干。

4.2、分支的优点

可以并行推进多个功能模块的开发,提高开发效率。

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

4.3、分支的操作

4.3.1、命令速查表

命令 作用
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上
git branch -d 分支名 删除分支

4.3.2、查看分支

git branch -v

本示例的分支信息说明:

  • master :分支名称

  • bcd91c3 :分支当前指向的版本号

  • 第二次提交:分支当前指向的版本的日志信息

4.3.3、创建分支

git branch 分支名

本示例根据 master (主干)分支创建了 user 分支;刚创建的 user 分支除了分支名之外,其他都和 master (主干)分支是一样的。

4.3.4、切换分支

git checkout user

切换分支成功后,命令行会提示目前是在 user 分支上;查看分支时,user 分支也被用星号高亮标记。

4.3.5、修改分支

4.3.5.1、在新分支上新增文件

4.3.5.2、将新分支的改动提交到本地库

4.3.5.3、切换回主干分支

切换回 master 主干分支后,可以发现工作区没有在 user 分支时新增的文件,即 master 主干分支没有受到 user 分支的影响。

4.3.6、合并分支

git merge user

如上图所示,合并 user 分支到 master 分支后, master 分支多了一个在 user 分支新增的文件

如上图所示,合并分支后,user 分支和 master 分支的版本号和提交日志信息都是一致的。

4.3.7、模拟冲突

4.3.7.1、user分支操作

切换到 user 分支,修改 hello.txt 文件,并提交到本地库。

4.3.7.2、master分支操作

切换到 master 分支,修改 hello.txt 文件,并提交到本地库。

4.3.7.3、合并产生冲突

如上图所示,合并 user 分支到 master 分支时,产生了冲突;分支的状态也由 master 变成了 master|MERGING ,说明还没有合并成功。

合并冲突提示信息说明:

  • Merge conflict in hello.txt :在 hello.txt 中存在合并冲突。

  • Automatic merge failed:自动合并失败。

  • fix conflicts and then commit the result:需要处理冲突后再提交。

打开发生合并冲突的文件(本例为 hello.txt ),可以看到具体发生冲突的内容:

  • 在“<<<<<<<HEAD”和“=======”之间是当前分支的内容。

  • 在“=======”和“>>>>>>>”之间是要合并的内容。

4.3.7.4、合并冲突的原因

合并分支时,如果两个分支在同一个文件的同一个位置做了不同的修改,就会产生冲突。

因为Git 无法自动替我们决定使用哪一个,所以必须手动决定新内容。

4.3.8、解决冲突

4.3.8.1、手动处理冲突的内容

4.3.8.2、提交处理冲突后的内容

如上图所示,当冲突的内容被处理并提交后,分支的状态也由 master|MERGING 变成了 master,说明已经合并成功。

注意:此时使用的 git commit 命令不能带文件名。

4.3.8.3、注意事项

本例演示解决的是合并 user 分支到 master 分支时发生的内容冲突,冲突的地方在 master 分支,解决冲突的地方也是在 master 分支。

因此,如上图所示, user 分支的内容不会受到任何影响。

4.3.9、删除分支

 git branch -d 分支名

当某个分支没有存在必要的时候,可以将其删除。

注意:当要删除的分支是当前分支时,会报错:“error: cannot delete branch '当前分支名' used by worktree at '工作区路径'”;

这时只需要将当前分支切换为其他分支,就能成功删除。

4、Git之分支操作的更多相关文章

  1. git学习(三) git的分支操作

    git的分支操作 软件项目中启动一套单独的开发线的方法,可以很好的避免版本兼容开发的问题,避免不同版本之间的相互影响,封装一个开发阶段,解决bug的时候新建分支,用于对该bug的研究: git中跟分支 ...

  2. 关于git远程分支操作

    对于用户来说,git给人提交到本地的机会.我们可以在自己的机器上创建不同的branch,来测试和存放不同的代码. 对于代码管理员而言,git有许多优良的特性.管理着不同的分支,同一套源代码可以出不一样 ...

  3. Git合并分支操作

    1. 添加自己的文件 git add .; 2. 缓存自己的文件 git stash; 3. 查看状态 git status; 4. 获取别的分支 git pull origin master(分支名 ...

  4. git 删除分支操作

    删除分支时自己不能够在要删除的分支上 删除本地的某个分支 git branch -d branchname # 交互式删除分支 git branch -D branchname # 强制删除分支 删除 ...

  5. git branch 分支操作

    一.git分支命令 Git鼓励大量使用分支: 查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name> 创 ...

  6. Git常用分支操作

    新建分支 git branch branchname 切换到分支dev git checkout branchname 查看所有的分支信息 git branch -a 查看远程分支信息 git bra ...

  7. git 远程分支和tag标签的操作

    git远程分支操作:1.创建远程分支git push --set-upstream origin develop:develop2在服务器创建远程分支devlop2,让本地的develop分支和dev ...

  8. git命令行操作

    从本地上传代码到仓库(假设已经建好仓库): 1.初始化: git init 2.将所有文件加入缓存区: git add * 3.提交当前工作空间的修改内容: git commit -m 'commit ...

  9. Git提交分支

    Git提交分支操作 1.git add 命令告诉 Git 开始对这些文件进行跟踪 git add . 2.然后提交 git commit -m'这是注释信息' 3.git pull命令用于从另一个存储 ...

  10. git 基本命令和操作

    设置全局用户名+密码 $ git config --global user.name 'runoob' $ git config --global user.email test@runoob.com ...

随机推荐

  1. 一种基于E3处理器平台的NAS完整方案(从电脑组装到网站部署)

    一种基于E3处理器平台的NAS完整方案(从电脑组装到网站部署) 本文将简要简要介绍本人自建NAS的完整配置,截至发文此NAS已经连续良好运行一年,应当说具有良好的稳定性. 本文所述配置包含洋垃圾成分, ...

  2. 如何实现sm3加密

    SM3加密应用 何为sm3加密? SM3是由中国国家密码管理局设计的一种密码杂凑函数,类似于SHA-256和MD5等国际标准的散列算法.SM3算法是中国国家标准<GB/T 32905-2016 ...

  3. Python实现字符串模糊匹配

      在一个字符串中,有时需对其中某些内容进行模糊匹配以实现条件的判定,如在"你好,hello,world"中判断是否含有"llo".Python中通过re.se ...

  4. vue基础使用

    传统dom操作 使用js或jquery库对html页面结构中的指定的区域输出数据 使用vue实现 在html页面中使用好vue需要完成如下步骤即可 引入vue.js文件 定义给vue.js管理的dom ...

  5. dubbo~全局异常拦截器的使用与设计缺陷

    异常拦截器ExceptionMapper 在JAX-RS(Java API for RESTful Web Services)中,ExceptionMapper接口用于将Java异常映射到HTTP响应 ...

  6. P7448

    problem & 双倍经验 & blog 低配版本 没有 Ynoi 标志性算法卡常,这点差评. 拆解问题 定义 \(lst_i\) 为上一个和 \(i\) 号点相同的位置. 由于几个 ...

  7. C#.NET ASP.NET IIS 加载.pfx私钥证书时报错“出现了内部错误。”

    C#.NET ASP.NET IIS 加载.pfx私钥证书时报错"出现了内部错误." 原始代码报错: X509Certificate2 x509cer = new X509Cert ...

  8. windows 通过cmd命令(netsh wlan命令)连接wifi

    引用:https://www.cnblogs.com/moonbaby/p/11188135.html 1)显示本机保存的profiles,配置文件是以wifi的ssid命名的. netsh wlan ...

  9. C++面向对象语言自制多级菜单

    因为要做一个小应用,需要一个菜单类,在网上找了许久,也没有找到一款心仪的菜单类,索性用C++语言,自制一个命令行级别的菜单类,并制作成库,现记录下来,供以后借鉴. 一.特性 无限制条目 无限制层级 用 ...

  10. fastjson对接口参数的某个字段不打印输出,如文件的base64字符串

    fastjson对接口参数的某个字段不打印输出,如文件的base64字符串 package com.example.core.mydemo.json5; import com.alibaba.fast ...