美文网首页
如何通俗易懂的理解git-flow

如何通俗易懂的理解git-flow

作者: 仕明同学 | 来源:发表于2020-04-30 23:00 被阅读0次

    首先记住:git-flow一个当前非常流行的工作流程 ,工作流程而已

    Git Flow的流程图,我相信这张图在网上到处都有,但是看懂的人其实不多

    image.png

    先丢在开头,后面看完了才回来看这张图

    git-flow 分支的模式

    • master 只能用来包括产品代码。你不能直接工作在这个 master 分支上,而是在其他指定的,独立的特性分支中。不直接提交改动到 master 分支上也是很多工作流程的一个共同的规则。
    • develop 是你进行任何新的开发的基础分支。当你开始一个新的功能分支时,它将是开发的基础。另外,该分支也汇集所有已经完成的功能,并等待被整合到 master 分支中。
    image.png

    这两个分支被称作为 长期分支。它们会存活在项目的整个生命周期中。而其他的分支,例如针对功能的分支,针对发行的分支,仅仅只是临时存在的。它们是根据需要来创建的,当它们完成了自己的任务之后就会被删除掉。

    image.png

    实际的工作模式

    • 1、一个人单干
      如果你的公司很小,开发人员就你一个,理论上在master 或者那个分支都是可以,但是我劝你善良,不要这么干,万一你公司成为下一个阿里巴巴了,下一个进来的开发人员看到这些分支估计要吐血,哈哈

    • 我有幸入职一家公司就是这样,master分支直接开搞,需要提交代码在群里说一声,万一冲突了,同时万一你手贱拉了代码,这个时候你就只有看着,现在我想起哪个公司,我就有点纳闷,移动端有5个人呀,不是 一个人呀。。。。

    • 2、三个人左右的团队
      你们同时开发一个App,在一个分支,这样做有个问题,如果其中一个哥们提交了有问题的代码,你刚好拉了代码,你就必须等待,如果刚好其中有个哥们可能对git不太熟悉的话,那就等的更加的久了,所以如果最好的分开搞

    • 3、很多人一起协作,这时候的git-flow的流程,也是我工作中的流程
      1、首先远程厂库有 master和develop分支
      2、clone 到本地,切换到develop分支,然后在develop分支开发(那可能会想,不是说了不在develop分支开发么,这个意思不准确)
      3、我们假如一种情况,开发一个功能,你和很多的同事一起,假如同事开发的东西,你需要引入,如果你们不在一个分支,那就麻烦了,先合并代码到develop,然后这个哥们合并到develop,在拉去develop的代码,然后在回到自己的分支,哇哇,这样看来更加的麻烦了

    4、其实,我们本地是在develop的分支做开发的,只不过推送到远端厂库的不是在develop,哈哈!这个操作骚,Android studio可以轻松的做到


    image.png

    5、我们推送到远程的厂库的feature分支了,接下来需要怎么合并到远程的develop分支,方便别人去获取最新的代码呢?其实很简单,我以github截图就是 :new pull request,通知你们的小组长去合并代码到develop,然后小伙伴就可以获取在develop的最新代码,就直接拉去就行了

    image.png
    6、最终的结果就是下面的这张图,你的本地厂库可能只有develop的分支,如果不出意外的情况,当然有时候也需要对比其他分支的代码的异同
    image.png
    7、为什么要打tag?其实如果你打包在本地的话,那就不用,但是如果是 使用 Jenkins 打包呢?所以这个tag最大的用处就是来区分打包的,tag的命名规则统一就好,能表现出日期,同时能分辨是否是正式包和debug的版本就行 如何优雅的使用Jenkins来打安卓正式包和多环境包

    相关文章

      网友评论

          本文标题:如何通俗易懂的理解git-flow

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