Git的学习(2)----------分支学习

1.分支(重点)

1.概念
  1. 分支是一个个版本最终存储的位置。

  2. 分支,就是一条时间线,每次git commit形成一个个版本,一个个版本依次存储在分支的一个个提交点上。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b6YzZu65-1608442207577)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1607668253010.png)]

2.分支操作
1.查看分支

查看当前窗口的分支 git branch,仓库中默认只有master分支,执行git commit时,默认是在master分支上保存版本。

# git branch
F:\repo1>git branch
* master
2.创建分支
  1. 为什么要创建分支

    因为我们在开发的时候,不可能一开始写好的代码稳定性等类似其他因素是最好的情况,若都是一股脑只存在master上,就会使的master主分支上很杂乱无章。因此,我们在需要创建一个分支如dev,比如刚刚开发好的内容,提交到dev中,等到测试后,很稳定很稳定,在放到master上,这样子就确保master主分支上的内容是最稳定的。

  2. 创建分支 git branch name

    # git branch dev
    F:\repo1>git branch dev
    
    F:\repo1>git branch
      dev
    * master
    
    
3.切换分支

使用命令 git checkout dev

在这里插入图片描述
如何测试有两个分支呢?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0B1ejp6i-1608442817001)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1607668882616.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBz9U7jA-1608442817005)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1607668958429.png)]

3.多分支细节
  1. 就如上面的测试,为啥我一切换分支,原来的c.txt 文件就不见了,这是为什么呢?这就要跟多分支走向有关系了。
    在这里插入图片描述
4.查看日志
git log  # 完整详细的日志
git log --oneline  # 简单的日志

如果出现bug :WARNING: terminal is not fully functional
请看这篇文章:https://blog.csdn.net/xueyijin/article/details/111419374
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mh6pAxhe-1608443153498)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1607669697465.png)]

5.分支合并(重点)
  1. 什么叫分支合并?

    比如当dev分支开发项目已经很成功了,绝对没有bug了,那么就需要让dev与master分支合并,统一起来。

  2. 分支合并,主要分为快速合并三方合并

1.快速合并
  1. 前提条件:在创建另一个分支dev的时候,主分支master不动,即从创建分支dev起,没有再创建新的节点,而dev分支创建新的节点了,此时合并,只需要将master分支的指针,直接指向dev分支的节点上即可。

  2. 语言解释不通,图形来解释。
    在这里插入图片描述

  3. 这种时候,不能使用快速合并。
    在这里插入图片描述

2.三方合并

针对刚刚上面最后一张图片出现的情况的解决方案。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-twkGrYoE-1608443408135)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1607739607360.png)]

3.演示(快速合并)
  1. 有空的小伙伴,可以自行练习三方合并。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4gIZnCaA-1608443484984)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1607740239169.png)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GtAlTh5z-1608443484987)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1607740150911.png)]

  2. 合并命令

    # git merge 待合并分支
    git merge dev
    # 将dev合并到 当前分支上,当前分支是master,就是将dev合并到master上
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sz91LIZ3-1608443484990)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1607740375851.png)]

6.合并冲突
  1. 什么叫冲突

    就是A同学修改了a.txt文件,B同学也修改了a.txt文件,合并的时候,git并不知道以那个为准。需要人工决定。

  2. 案例

    master分支上与dev分支上的文件都有a b文件,且master分支上在a.txt 上输入 master aaaaa,dev分支上的文件在a.txt文件上输入 dev aaaaaa,之后将dev合并到master上。

    F:\repo1>git merge dev
    Auto-merging a.txt
    CONFLICT (content): Merge conflict in a.txt
    # 自动合并失败,需要取修复这个,然后再去提交
    Automatic merge failed; fix conflicts and then commit the result.
    

    此时我们看一下a文件,我们发现,这就是git不知道以谁为准,直接列出来,让你选择,当我决定要保留dev aaaa的时候,把master的内容 以及 <<<< >>>> ====这些标记删除。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CYbhxJL7-1608443484995)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1607740995428.png)]

    # 再执行一次添加,即可
    F:\repo1>git add .
    
    F:\repo1>git commit -m "a.txt"
    [master 266f52b] a.txt
    

其他相关文章学习

Git的学习(0)----------前言

Git的学习(1)----------相关命令

Git的学习(2)----------分支学习

Git的学习(3)----------idea中使用Git

Git的学习(4)----------回到过去节点

Git的学习(5)--------总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值