04_分支

作者: 雨点的光辉 | 来源:发表于2020-04-06 17:43 被阅读0次

一、分支介绍

引用:分支介绍

二、分支操作

1.新建分支

  1. 创建新分支:git branch 分支名
  2. 切换到新分支:git checkout 分支名
    注意:
    1.上面两个命令也可以合成为一个命令:git checkout -b 分支名
    2.如果是本地仓库在一个新文件夹里面,先commit之后才会真正建立master分支,此时才可以创建其它分支。

2.本地新建分支并拉取远程分支内容到本地

  1. 创建本地分支:git branch 分支名
  2. 拉取远程分支内容:git pull origin/分支名
    注意:如果建立了本地分支与远程分支的映射关系(或者为跟踪关系track),直接使用git pull拉取远程分支。
  • 关联远程分支与本地分支:git branch --set-upstream-to origin/分支名
    注意:为建立本地分支与远程分支的映射关系(或者为跟踪关系track)。这样使用git pull或者git push时就不必每次都要指定从远程的哪个分支拉取合并和推送到远程的哪个分支了。

引用:建立分支关联关系

3.查看分支的不同

查看本地分支的不同

序号 描述 含义
1 git diff branch1 branch2 --stat 显示出branch1和branch2中差异的部分
2 git diff branch1 branch2 文件名 显示指定文件的详细差异
3 git diff branch1 branch2 显示出所有有差异的文件的详细差异
4 git log branch1 ^branch2 查看branch1分支有,而branch2中没有的log
5 git log branch1..branch2 查看branch2中比branch1中多提交了哪些内容,注意:中间是两个点
6 git log branch1...branch2 ------
7 git log --lefg-right branch1...branch2 ------

查看本地分支与远程分支的不同

  1. 更新本地的远程分支:git fetch origin branch1,会创建一个名为 FETCH_HEAD 的分支,对应远程服务器的branch1分支,该分支不存在工作区。
    注意:在这种情况下, 不会在本地创建本地远程分支。
  2. 查看当前分支对应远程分支的更新信息:git log -p FETCH_HEAD
  3. 查看本地与远程的差集 (显示远程有而本地没有的commit信息):git log master..origin/master
  4. 对比不同:git diff master origin/master --stat
  5. 合并:git merge FETCH_HEAD

4.分支合并

  • master分支落后dev分支,想把dev分支合并到master分支,切换到master分支,使用git merge dev直接合并,如果有冲突就解决。
  • master分支落后dev分支,想把master分支合并到dev分支,则合并无效,因为合并默认是把超前分支内容合并到落后分支中。
  • 分支合并包括如下情况
    • 当前分支没有进行提交,一直保持从新建另一分支时原始状态,另一分支提交过,如:从master分支中新建dev分支,新建之后一直在dev分支开发,则切换到master分支使用git merge devmaster分支的内容就是dev分支内容一样
    • 当前分支进行过提交,另一分支提交过,如:从master分支中新建dev和dev2分支,新建之后分别在dev和dev2分支开发,则切换到dev分支使用git merge dev2dev分支的内容如下显示:
      1.其他分支对文件做过操作(修改内容、删除文件),当前分支对该文件没有操作,对其他文件有操作,合并之后则只把其他分支被操作过文件(当前分支对这些文件没有操作)的内容合并到当前分支,当前分支被操作过文件的内容不会变,依旧存在。两个分支都没有操作过的文件不会合并。

直接合并(修改不同文件)

  • 分支1修改A文件或者新增A文件,分支2修改B文件或者新增B文件,分支2可以直接把分支1的分支内容合并到分支2,切换到分支2上后直接使用git merge 分支1
  • 例子:电脑1push本地代码到远程分支,电脑2commit但是没有push,怎么把远程分支拉取下来,同时不会修改电脑2的本地代码
    • 电脑1修改A文件或者新增A文件,电脑2修改B文件或者新增B文件,电脑2可以直接把电脑1的分支内容合并到电脑2,操作为电脑2本地新建分支pc_a,拉取电脑1的的代码到分支pc_a上,电脑2的本地分支pc_b,切换到分支pc_b,使用git merge pc_a

合并出现冲突(修改同一文件)

两个分支改变了同一个文件,合并时就会产生冲突。发生这种情况时,Git将无法确定要使用哪个版本。Git会提示哪些文件存在冲突,使用vi命令进入冲突文件修改文件内容,文件显示如下:

  1. <<<<<<<:冲突标记,冲突开始于此行之后。
  2. =======:将一个分支的更改与另一个分支中的更改分开。
  3. >>>>>>>:冲突线的结束。
  • 可以保留或者修改或者写一个全新的代码,编辑完成之后删除标记(<<<<<<、=======、>>>>>>>)

解决冲突后合并

  1. git add .
  2. git commit -m "xx"
  3. add和commit之后就自动切回到之前合并的分支上,合并结束。

相关文章

  • 04_分支

    一、分支介绍 引用:分支介绍 二、分支操作 1.新建分支 创建新分支:git branch 分支名 切换到新分支:...

  • 第01天(基本类型、流程控制)_01

    01_hello.go 02_hello.go 03_变量的使用.go 04_自动推导类型.go 05_Print...

  • 第05天(异常、文本文件处理)_01

    01_error接口的使用.go 02_error接口应用.go 03_显式调用panic函数.go 04_数组越...

  • 第02天(函数、工程管理)_知识点图片

    01_普通函数调用流程 02_递归函数的调用流程 03_递归实现累加 04_工程管理 05_工程管理

  • 04_集合

    集合在面试的时候,经常被问到,关于集合我们需要掌握些什么呢? 你掌握了些什么呢? arraylist和linked...

  • 04_函数

    什么是函数? 实现特定功能的n条语句的封装体 只有函数是可以执行的, 其它类型的数据不能执行 为什么要用函数? 提...

  • 04_打家劫舍

  • 04_栈

    栈的初识 栈是一种特殊的线性表,只能在一端进行操作 往栈中添加元素的操作,一般叫做push,入栈 从栈中移除元素的...

  • git 操作之分支

    查看分支 创建分支 删除分支 切换分支 分支比较 本地分支和远程分支比较 本地分支和本地分支比较 分支合并 跟踪分支

  • 分支处理

    一、创建分支 本地分支 远程分支 二、删除分支 本地分支 远程分支 三、查看分支 本地分支 远程分支 四、切换分支

网友评论

      本文标题:04_分支

      本文链接:https://www.haomeiwen.com/subject/gxdbphtx.html