正确的git开发流程

第一步

在github中创建一个新的仓库,这时候项目是空的,而且只有一个master分支

第二步

第一个开发人员进来了,他在本地创建一个develop分支,并且提交到远程

git branch  develop
git push -u origin develop

现在线上就有两个分支master 和 develop 现在这两个分支里面都是空的

第三步

一、二步完成后,任何一个参与该项目的开发人员首先要做的就是从develop分支上切一个新分支进行功能开发

git checkout -b <本地分支名 feature/***> <origin/develop>
或者
git fetch origin 远程分支名:本地分支名
git branch --set-upstream-to=origin/远程分支名 本地分支名

然后进行开发,开发差不多,想提交一下

git status
git add
git commit

第四步

经过第三步,提交了几次后,感觉差不多了,就可以合并到develop分支

git pull origin develop //先拉取develop中的代码,因为有可能别人已经往上提交过代码了
git checkout develop//切到develop分支
git merge <feature/**>//合并feature/**中的代码到develop中
git push //提交到develop远程分支上
git branch -d feature/** //删除本地的分支

第五步

某一个开发人员想发布,但是其他人员还在进行开发,先不管别人,他先建立一个新的分支做发布准备

git checkout -b <本地分支名realse-0.1> <远程分支名develop>//注意这个realse-tagNo分支的功能是对发布的代码进行改善的地方

创建这个分支相当于测试环境修改,改好后就需要跟新master和develop,然后删除分支

git checkout  master//切到master分支
git merge release-0.1//将release分支合到master上
git push//将合完的代码提交到远程master
git checkout develop//切到develop分支
git merge release-01//将release分支上的代码合到develop分支上
git push//合完的代码推送到远程的develop分支
git branch -d release-01//删除本地release分支

第六步

打tag追踪,这个过程不太了解

git tag -a -0.1 -m 'xxxxxx'
git push --tags

Git有提供各种勾子(hook),即仓库有事件发生时触发执行的脚本
。可以配置一个勾子,在你push中央仓库的master分支时,自动构建好对外发布

难道这就是传说中的自动化构建???

第七步

线上环境发现bug了

git checkout -b hotfix/xxx master//从master分支上新建分支

然后开始改bug,改完后

git checkout master//切回master分支
git merge hotfix/xxx//将改完bug后的代码合并到master
git push

改完bug的代码还要合到develop中

git checkout develop
git merge hotfic/xxx
git push
git branch -d hotfix/xxx

 

作者:蔺亚静
链接:https://www.jianshu.com/p/abba038e1a63
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

https://www.jianshu.com/p/abba038e1a63

正确的git开发流程的更多相关文章

  1. FastAdmin 插件的 Git 开发流程(简明)

    FastAdmin 插件的 Git 开发流程(简明) cms zip 安装 包安装 删除 addons 里的 cms 使用 mklink 软链接到 cms 插件 Git 仓库 修改 cms 插件 gi ...

  2. git开发流程、常用命令及工具、TortoiseGit使用及常见问题

    根据我最近使用git的一些经历,git是基于分支的版本控制工具,分支有远程分支和本地分支. 一.开发流程 - 从远程服务器的master,clone一份项目文件到本地,然后本地master的基础上br ...

  3. [git]git开发流程

    git开发正确做法: 本地要有一个分支A和远端的分支保持对应 然后本地新开分支B开发,提交记录 如果需要将代码推送到远端的话,就切换回A,首先在A分支上pull同步远端的代码(pull还是fetch+ ...

  4. 公司项目git开发流程规范

    手动修改冲突之后,git add . git commit ,git push

  5. git开发流程

    典型的工作流程和做法是,由于你没有远程仓库的权限,你先在github通过fork,复制自己的一份远程仓库,然后通过clone你自己这个远程副本到本地,进行修改,修改后push到自己的githu远程副本 ...

  6. GIT 开发流程

    1.git clone 使用 git clone 将一个项目下载到本地 2.git checkout -b branchName 新建一个branchName的本地分支 3.git add file/ ...

  7. 最近在搞gitlab发现2个不错的开发流程分享一下

    一个不错的gitlab开发流程 http://blog.51cto.com/sgk2011/1925922 不错的git开发流程 https://www.cnblogs.com/coderzl/p/7 ...

  8. Gitblit搭建及Git协作开发流程

    1. 概述 目前主流的是git作为自己代码管理,但是采用github需要付费才能够使用,如果不付费,代码需要公开.创业团队及小型开发团队都有必要搭建自己的代码服务器,自己摸索需要一定的时间,会赶不及项 ...

  9. 5 个 Git 工作流,改善你的开发流程

    原文地址:5 Git workflows you can use to deliver better code and improve your development process 原文作者:Vi ...

随机推荐

  1. Shiro入门之二 --------基于注解方式的权限控制与Ehcache缓存

    一  基于注解方式的权限控制 首先, 在spring配置文件applicationContext.xml中配置自动代理和切面 <!-- 8配置自动代理 -->    <bean cl ...

  2. Anaconda下载及安装教程

    Anaconda官网 https://www.anaconda.com/download/#windows 选择Python 3.6版本 下一步,选择安装路径 下一步,两个方框打上对号,点击Insta ...

  3. JS中清空字符串前后空格

    在JS 操作的时候 长期会有对字符串的操作, 但是在JS 中不像在C#中 有字符串的方法 Trim() 来对字符串进行处理 .  所以自己写一个对字符串前后清楚空格的方法还是有必要的 以免以后忘记了 ...

  4. JQUERY获取loaded 宽高这么变态

    JQUERY获取loaded 宽高这么变态: $('<img/>').attr('src',img.src).load(function() { img.Owidth = $(this). ...

  5. Scrapy爬虫框架第七讲【ITEM PIPELINE用法】

    ITEM PIPELINE用法详解:  ITEM PIPELINE作用: 清理HTML数据 验证爬取的数据(检查item包含某些字段) 去重(并丢弃)[预防数据去重,真正去重是在url,即请求阶段做] ...

  6. Debian9安装vim编辑器

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=669 前言: Debian 9默认没有安装vim,但是使用Linux怎么能没有vim呢?下面就来安装一下vim吧. ...

  7. app后端设计(2)--xmpp的使用(2014.01.14更新)

    在app中有时候是需要添加聊天服务,在这里谈谈曾经开发聊天服务的经验: (1)聊天服务端选的openfire,这是一个基于xmpp协议的聊天服务器(XMPP是一种基于XML的协议,它继承了在XML环境 ...

  8. &amp;

    在 xml 中,不能直接使用 '&' 表示 '&',要转译为 '&'  (转译序列个字符不能有空格,区分大小写,以';'结束,不要丢了分号哦 ;    amp;不是" ...

  9. Spring MVC温故而知新 – 请求映射RequestMapping

    RequestMapping注解说明 @RequestMapping注解的作用将Web请求映射到特定处理程序类和/或处理程序方法,这个注解可以用于类或者方法上,并通过属性value指定请求路径.用在C ...

  10. Java一次读取文本文件所有内容

    转自https://www.cnblogs.com/longronglang/p/7458027.html#undefined 我们做文本处理的时候的最常用的就是读写文件了,尤其是读取文件,不论是什么 ...