先声明几个变量

仓管A:主分支,只有master分支
仓管B:开发分支,只有各个业务开发分支   
仓管B fork 于 A

如下图

为了保证 代码的稳定性,只有 仓管B中的某个分支测试完毕并进行了代码review 才可以 和 仓管A进行 merge

PS: 只有仓库B所有开发都有权限  仓库A 只有特定人才有权限,这样可以保证仓库A的代码稳定性

流程和命令如下:

1.某业务功能确定要开发,2015年6月20号开始开发,新建分支

git checkout -b pmt_20150630_walle  remote_a/master //从 A仓管新建分支

git push remote_b pmt_20150630_walle:pmt_20150630_walle //在B仓管新建分支pmt_20150630_walle这样其他人可以直接使用此分支开发

2.开发过程中提交更新 直到测试

git add .

git commit -am "vincent -- comment"

git push remote_b pmt_20150630_walle:pmt_20150630_walle //推送更新到远程

3.测试完成 准备合并到A的master

git fetch --all

git rebase  remote_a/master

git add .//如果有冲突,解决冲突,然后git add. ,git rebase --continue,一直重复直到合并成功

git rebase --continue

git push remote_b pmt_20150630_walle:pmt_20150630_walle -f //强制推送rebase合并的到对应分支

4. 在git工具中直接提 merge request ,然后merge到 仓库A的master 。如果公司有开发发布平台,那么这一步直接在发布机器服务器进行merge 命令操作

原文地址:【Git 使用笔记】第四部分:git在公司中的开发流程
标签:分支   开发   仓管   A   B   rebase   merge   git

智能推荐

【Git 使用笔记】第四部分:git在公司中的开发流程的更多相关文章

  1. 【Git 使用笔记】第二部分:基本命令 和 单分支开发

    git 基本命令 git add . git commit -am "请填写你NB的备注" git fetch --all git fetch -p  //如果远程分支删除了,本地 ...

  2. Git学习笔记(四)

    一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...

  3. 使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支

    使用VSTS的Git进行版本控制(四)--在Visual Studio中管理分支 可以从web版Team Services Git repo 的Branches视图中管理工作.定制视图来跟踪最关注的分 ...

  4. VSTO学习笔记(四)从SharePoint 2010中下载文件

    原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给CO ...

  5. git学习笔记(四)—— 分支管理

    一.创建与合并分支 git branch //查看分支 git branch <name> //创建分支 git checkout <name> //切换分支 git chec ...

  6. Git学习笔记(四)标签和搭建Git服务

    一.标签是什么 发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一 ...

  7. git使用笔记(四)远程操作

    By francis_hao    Nov 19,2016 以一张图说明远程操作,图片来自参考[2] git clone 从远端主机克隆一个版本库,若省略directory则生成一个和远端同名的版本库 ...

  8. GIT入门笔记(3)- git中的一些概念和原理

    一.git管理过程中所处的4个阶段: 工作目录(workspace) 暂存区(index) 本地仓库(local repository) 远程仓库(remote repository) 二.工作目录+ ...

  9. Git学习笔记(一)Git初识及基本操作

    详细完整教程:官方文档,廖神Git教程,武sir 一.什么是Git? 定义:Git是分布式版本控制系统. 1.1什么是版本控制 我们可以回想以下,在我们上学毕业要写论文或是准备一份演讲稿的时候,都会用 ...

随机推荐

  1. 【RF库测试】算法运算

  2. 先安装VS2017再安装VS2015遇到的CMake问题

    先安装了VS2017,后来有需求安装VS2015,安装VS2015的时候遇到下图问题,但是控制面板里面看不到Microsoft Visual C++ 2015 Redistributable的项目 我 ...

  3. [Ubuntu] apt 添加第三方库

    1. 方法一:直接在 /etc/apt/sources.list 添加第三方库. $ sudo vi /etc/apt/sources.list 在其中添加: deb http://archive.s ...

  4. 【抓包分析】 charles + 网易mumu 模拟器数据包

    charles  的使用.我就不再多说了.可以参考以往文章,传送门: https://www.cnblogs.com/richerdyoung/p/8616674.html 此处主要说网易模拟器的使用 ...

  5. 【cs229-Lecture3】Logistic回归

    参考: http://www.itongji.cn/article/12112cH013.html http://blog.csdn.net/zouxy09/article/details/20319 ...

  6. 剑指offer——49

    丑数 因子只含2,3,5的数称为丑数. 怎么求第K大的丑数呢.K可以为10^7 最简单的做法是,对每个数判断是否为丑数. 复杂度为O( n * log(n) ),理论上是不行的. uglys[i] 来 ...

  7. hibernate annotation多对多中间表添加其他字段的第三种方法

    本示例主要以学生(T_Student)和课程(T_Course)之间的多对多关系,中间表Score(分数),学生表和课程表是多对多关系,另外为他们的关系添加额外的字段---分数: T_Student类 ...

  8. UE和UI的区别

    UI:User Interface的缩写,是指用户界面,最普遍的应用是在软件开发中,主要是指程序的用户操作界面的设计,随着Web应用的普及,UI也应用在了Web的用户界面规划上了.网站用户界面(Web ...

  9. webstorm启动报错

    环境: 在重装完系统的电脑上第一次安装webstorm, 问题: 解决”failed to load jvm dll“的报错问题: 解决方案: 安装Microsoft Visual C++ 2010 ...

  10. call()、apply()和bind()的异同

    相同点: 改变this的指向: var a = { name:"丸子", fn:function(){ console.log(this.name); } } var b = a. ...