【Git】:分支管理

这篇具有很好参考价值的文章主要介绍了【Git】:分支管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Git】:分支管理,Git,git,elasticsearch,大数据

一.概念

在版本回退⾥,你已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即master分⽀。

【Git】:分支管理,Git,git,elasticsearch,大数据

每次提交,master分⽀都会向前移动⼀步,这样,随着你不断提交,master分⽀的线也越来越⻓,⽽HEAD只要⼀直指向master分⽀即可指向当前分⽀。可能到目前为止还很模糊,接下来结合例子一起看。

二.分支管理基本操作

【Git】:分支管理,Git,git,elasticsearch,大数据

1. 查看分支

git branch

【Git】:分支管理,Git,git,elasticsearch,大数据

目前为止我们只创建了master分支(这是默认创建的),那么前面的*代表什么呢?之前我们的HEAD指针一直指向master,所以当我们进行add操作时是一直向master分支里添加。而HEAD可以指向其它分支,被指向的分支就是当前正在工作的分支。 *出现在master前面就代表master正在工作。

2.创建分支

git branch+name

【Git】:分支管理,Git,git,elasticsearch,大数据

接下来看看.git下的变化。

【Git】:分支管理,Git,git,elasticsearch,大数据

看到heads下面多出了一个dev,接下来查看它们的内容。

【Git】:分支管理,Git,git,elasticsearch,大数据

我们知道master里是最新提交的commit ID,但dev里存的内容竟然与master一样。这是因为我们是基于当前最新提交而建立的分支。

【Git】:分支管理,Git,git,elasticsearch,大数据

3.切换工作分支

git checkout +分支名,加上-b选项表示如果没有就创建一个。

【Git】:分支管理,Git,git,elasticsearch,大数据

【Git】:分支管理,Git,git,elasticsearch,大数据

【Git】:分支管理,Git,git,elasticsearch,大数据

4.进行测试

对ReadMe文件进行修改,并提交。

【Git】:分支管理,Git,git,elasticsearch,大数据

【Git】:分支管理,Git,git,elasticsearch,大数据

接下来切回master分支,再看看ReadMe内容。

【Git】:分支管理,Git,git,elasticsearch,大数据

可以看到我们新加的内容没有了。

5.合并分支

用master分支和并dev分支,注意必须切回mater分支。

【Git】:分支管理,Git,git,elasticsearch,大数据

仔细观察,可以发现这里打印出了Fast-forward(快速合并),为什么说快速呢?因为它是直接让master指向dev的本次提交,所以快。从这里你可以发现,在本次直接更改master指针没有问题,因为dev并没有对master内容进行修改,只是增加了一行,所以dev相当于向下兼容。如果dev里的数据是aaa,master里的数据是bbb,那么合并时应当保留谁,去除谁呢?

6.分支冲突

进行实验。在dev1分支上让ReadMe增加一行bbb,在master分支上增加一行aaa。

【Git】:分支管理,Git,git,elasticsearch,大数据

【Git】:分支管理,Git,git,elasticsearch,大数据

【Git】:分支管理,Git,git,elasticsearch,大数据

此时状态master和dev1都进行了提交:

【Git】:分支管理,Git,git,elasticsearch,大数据

再次进入ReadMe查看。

【Git】:分支管理,Git,git,elasticsearch,大数据

<<<<<到=====之间的代码都是当前分支的代码, ======到>>>>>之间的代码都是dev1分支的代码。这些都是冲突代码,git没办法解决,需要自己手动删除或保留代码。例如想保留bbb代码,那么只需要删除其它代码即可。

【Git】:分支管理,Git,git,elasticsearch,大数据

此时还需要再次提交。

【Git】:分支管理,Git,git,elasticsearch,大数据

此时状态master和dev1进行了合并:

【Git】:分支管理,Git,git,elasticsearch,大数据

这里再介绍一个命令,可以将上面的图打印出来,git log --graph --abbrev-commit。

【Git】:分支管理,Git,git,elasticsearch,大数据

7.分支删除

注意要删除某一分支,只能在其它分支上操作,例如我们要删除dev分支,就要在master或者除dev之外的其它分支上执行git branch -d dev。

【Git】:分支管理,Git,git,elasticsearch,大数据

三.分支管理策略

1.noff模式

通常合并分⽀时,如果可能,Git会采⽤ Fast forward 模式。在这种 Fast forward 模式下,删除分⽀后,查看分⽀历史时,会丢掉分⽀信息,看不出来最新提交到底是merge进来的还是正常提交的。但在合并冲突部分,我们也看到通过解决冲突问题,会再进⾏⼀次新的提交。那么这就不是 Fast forward 模式了(一般称为noff模式),这样的好处是,从分⽀历史上就可以看出分⽀信息。例如我们现在已经删除了在合并冲突部分创建的 dev1 分⽀,但依旧能看到master其实是由其他分⽀合并得到。

Git⽀持我们强制禁⽤ Fast forward 模式,那么就会在merge时⽣成⼀个新的 commit ,这样,从分⽀历史上就可以看出分⽀信息。命令:git merge --no-ff [分支名]。

fast模式

当我们使用fast forward模式,不会有分支信息。

master分支里的ReadMe
【Git】:分支管理,Git,git,elasticsearch,大数据

dev2里的ReadMe
【Git】:分支管理,Git,git,elasticsearch,大数据

将两者直接合并
【Git】:分支管理,Git,git,elasticsearch,大数据

没有分支信息
【Git】:分支管理,Git,git,elasticsearch,大数据

noff模式

master分支里的ReadMe
【Git】:分支管理,Git,git,elasticsearch,大数据

dev3分支里的ReadMe
【Git】:分支管理,Git,git,elasticsearch,大数据

使用noff合并(ps:由于写到这时xshell崩了,所以换了一个)
【Git】:分支管理,Git,git,elasticsearch,大数据

2.分支策略

在实际开发中,我们应该按照⼏个基本原则进⾏分⽀管理:
⾸先,master分⽀应该是⾮常稳定的,也就是仅⽤来发布新版本,平时不能在上⾯⼲活;

【Git】:分支管理,Git,git,elasticsearch,大数据

那在哪⼲活呢?⼲活都在dev分⽀上,也就是说,dev分⽀是不稳定的,到某个时候,⽐如1.0版本发布时,再把dev分⽀合并到master上,在master分⽀发布1.0版本;你和你的⼩伙伴们每个⼈都在dev分⽀上⼲活,每个⼈都有⾃⼰的分⽀,时不时地往dev分⽀上合并就可以了。

【Git】:分支管理,Git,git,elasticsearch,大数据

通过这样的模式就能够实现多人协同开发了。文章来源地址https://www.toymoban.com/news/detail-834160.html

到了这里,关于【Git】:分支管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第三节:Git分支管理(关键词:git branch、git checkout、git diff、git merge、查看、创建、切换、对比分支)

    本节涉及Git命令 git branch :列出全部分支 git branch name :创建分支 git checkout name :切换分支 git diff branch1 branch2 :对比两个分支 git diff --quiet branch1 branch2 :对比两个分支是否存在差异,但不显示细节 git diff branch1 branch2 filename :对比两个分支中某个具体文件差异 git merge :合并

    2023年04月08日
    浏览(34)
  • Git 代码分支管理

    作者:京东科技 周新智 近日,IoT 研发团队加入了不少新同学,对 git 分支的命名和管理方式有些许的模糊,分支的命名规范以及管理方式对项目的版本发布至关重要,为了解决实际开发过程中版本发布时代码管理混乱、冲突等比较头疼的问题,我们将在文中阐述如何更好的

    2024年02月05日
    浏览(66)
  • git 工具使用--分支管理

    分支管理是Git的杀手级功能之一。分支:就是科幻中的平行宇宙,当你正在电脑面前学习C++的时候,另一个你正在另外一个平行宇宙里面学习Java。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平时宇宙合并了,结果,你既学习了C++,也学

    2024年02月16日
    浏览(37)
  • git分支管理

    查看分支 查看所有分支(包括远程分支) 创建分支 切换分支 创建+切换分支 删除本地分支 查看远程分支 新建远程分支 删除远程分支 查看本地分支和远程分支关联情况: 将本地的分支和远程的分支进行关联,设置过关联之后我们只需要git push和git pull就可以更新和推送这个

    2024年02月16日
    浏览(26)
  • Git---分支管理

    本篇博客开始介绍Git的杀手级功能之一 : 分支.分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习C++的时候,另一个你正在另一个平行宇宙里努力学习Java. 正文开始! 接着上面的阐述 : 如果两个平行宇宙互不干扰,那对现在的你也没有什么影响.不过,在某个时间点,两个平

    2024年02月12日
    浏览(24)
  • Git的分支管理

    我们常见的分支有: master:主分支,也成为线上分支,主要用来 版本发布的(生产环境部署) 。 dev:开发分支,该分支保存了开发的最新代码。 release:可以认为是 master分支的测试版,也可认为预发布分支 ,比如某个功能开发完成或者某个bug修复完成后,测试成功以后就可

    2024年02月02日
    浏览(15)
  • git~分支管理规范

    避免新开发的代码影响提测的代码 避免生产环境出现问题后,修复后,由于代码混乱,无法合并到生产环境 解决多个需求并行开发,并行测试,合并上线的问题 流程图工具我使用的是:diagrams.net 具体执行步骤 开发人员按需求粒度从dev建立分支 哪个需求或者哪些需求提测,

    2024年02月02日
    浏览(31)
  • Git 分支管理及规范

    1. 分支管理 代码提交在应该提交的分支 随时可以切换到线上稳定版本代码 多个版本的开发工作同时进行 2. 提交记录的可读性 准确的提交描述,具备可检索性 合理的提交范围,避免一个功能就一笔提交 分支间的合并保有提交历史,且合并后结果清晰明了 避免出现过多的分

    2024年02月15日
    浏览(30)
  • 管理Git的分支

    目录 一、本地分支(local branches)管理 1.1  查看和建立分支( git branch) 1.2  分支中提交的浏览与比较(git log) 1.3 切换当前分支(git switch)与合并分支(git merge) 1.4 签出分支(git checkout) 二、远程分支及其管理 2.1 远程仓库与远程分支 2.2远程仓库的复刻(fork)与克隆

    2024年02月04日
    浏览(28)
  • 【Git】:分支管理

    在版本回退⾥,你已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即master分⽀。 每次提交,master分⽀都会向前移动⼀步,这样,随着你不断提交,master分⽀的线也越来越⻓

    2024年02月21日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包