【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日
    浏览(49)
  • git 工具使用--分支管理

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

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

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

    2024年02月21日
    浏览(33)
  • Git 分支管理详解

    1.前言  我们先来说一个简单的案例吧,你们团队中有多个人再开发一下项目,一同事再开发一个新的功能,需要一周时间完成,他写了其中的30%还没有写完,如果他提 交了这个版本,那么团队中的其它人就不能继续开发了。但是等到他全部写完再全部提交,大家又看不到他

    2023年04月24日
    浏览(32)
  • git:多分支管理

    指令: git branch 需要注意的是,git branch只是代表操作本地的分支,但是我们在仓库初始化git push -u origin 分支或者git pull origin 分支的时候就会有远程的分支连接好了,所以, git branch -a 是显示所以分支的指令(本地和远程) 指令: git branch (branchname) 删除本地分支 git branch -

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

    Git分支管理是指在Git版本控制系统中,使用分支来管理项目的不同开发线路和并行开发的能力。通过分支,开发者可以在独立的环境中进行功能开发、bug修复等工作,而不会影响到主分支上的代码。 查看分支: 在Git中有一个HEAD指针,默认情况下指向master,而master指向的是最新的

    2024年02月15日
    浏览(44)
  • 管理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日
    浏览(38)
  • git 分支管理

    一. 理解分支 1. master分支  二. 分支的(创建,切换、合并、删除) 1.查看分支  2.创建分支 3. 切换分支  4. 合并分支 5. 删除分支 三. 合并冲突 四. 合并模式 五. bug 分支 六. 强制删除分支 在我们的版本库中式有一个master分支的,但是我们不知道我们的master分支是什么  我们

    2024年02月12日
    浏览(51)
  • Git分支管理笔记(下)

    四.分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息 实战--no-ff方式的git merge禁用fast forward 模式 首

    2024年02月03日
    浏览(43)
  • 【Git】分支管理

    两个开发端,一个在 Ubuntu 中,一个在 Windows 中。未来还有可能在 MacOS 中增加一个开发端。为使得不同开发环境中的代码保持同步,且相互不产生干扰。需要创建2个开发分支(Development Branch)( ubuntu 和 Windows ),独立进行开发工作,并将最新的更改更新到主分支( main )。 一些

    2024年04月17日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包