正确的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. Java线程池中submit() 和 execute()方法的区别

    两个方法都可以向线程池提交任务, execute()方法的返回类型是void,它定义在Executor接口中, 而submit()方法可以返回持有计算结果的Future对象,它定义在ExecutorS ...

  2. 十九、Hadoop学记笔记————Hbase和MapReduce

    概要: hadoop和hbase导入环境变量: 要运行Hbase中自带的MapReduce程序,需要运行如下指令,可在官网中找到: 如果遇到如下问题,则说明Hadoop的MapReduce没有权限访问 ...

  3. 【手记】小心在where中使用NEWID()的大坑

    这个表达式: --把GUID弄成正整数,然后取模 是随机返回0.1.2这三个数,不可能返回其它东西,但是如果把它用在where里面,就会发生很神奇的事情,比如这个查询: --创建一个只有1列3行的表, ...

  4. npm安装项目出错

    F:\ajax>npm install iview --savenpm WARN saveError ENOENT: no such file or directory, open 'F:\aj ...

  5. 关于新建Eclipse新建一个WEB项目后创建一个jsp文件头部报错问题?

    点击项目右键→Build Path→Libraries→AddLibrary→Server Runtime→Apache Tomcat v7.0→Finsh  操作步骤如上! http://jingy ...

  6. Git常用命令解说

    http://blog.csdn.net/hangyuanbiyesheng/article/details/6731629 1. Git概念  1.1. Git库中由三部分组成         Gi ...

  7. 1. 开篇-springboot环境搭建

    最初学习strurs2时,虽然觉得也挺好用的,但也有一些不便的地方:1. 模型绑定必须要在Action中声明对应模型的成员变量:2. Action中对外提供调用的接口必须明确注明:3. 要声明一大堆的 ...

  8. if_else_while_for

    import getpass #标准库里要加密密码需要导包getpass.但是getpass在pycharm中不好用,需要在命令窗口中输入才管用. _username = "abc" ...

  9. I/O------字节输出流

    package io.day03; import java.io.FileOutputStream; import java.io.OutputStream; public class day03ou ...

  10. 1.2 lambda 表达式的语法

    1.2 lambda 表达式的语法 还以上一节中的排序为例.我们传递代码来检查某个字符串的长度是否小于另一个字符串的长度,如下所示: Integer.compare(first.length(), s ...