前言 在我前期的项目管理的经验中,一个项目需要维护多个产品及多个版本,这给版本与分支的管理增加了难度.前期没有重视,使得分支太多太乱,版本也没记录好,引发了很多的问题.在多种分支与版本的管理模式下,最终参考阿里的AoneBased模式来管理分支.在此做个总结并分享给大家,希望可以帮助大家找到适合自己项目的版本管理方式. 背景 碰到一个较复杂的自研项目,既要做原始功能的研发,还要做产品的定制化开发.前期的版本管理大致为: 1.共一个主干分支master 2.N个特性分支==N个发布分支(特性分支开…
Atitit 版本管理----分支管理 版本管理系统"(Version Control System Branch/tag在一个功能选项中,在使用中很容易产生混淆. 分支(Branch)管理和标记(Tag)管理,版本管理系统有两个基本的功能. 分支用于在并行开发,这里的并行是指和trunk(主分支)的并行. 而tag是用来做一个里程碑(milestone),不管是不是release,都是一个可用的版本. 1.1. 版本的分支(branch)和合并(merge) 1.2. 一个中心版本库(我们叫它…
说到分支管理模型,令人最为熟悉的莫过于TrunkBased 和 GitFlow. TrunkBased 模型是持续集成思想所崇尚的工作方式,它由单个master分支和许多release分支组成,每个release分支在特定版本的提交点上从master分支创建出来,用来进行上线部署和 Hotfix.在 TrunkBased 模式中,没有显性的feature分支. GitFlow 模型是若干模式的集大成者,包含一个master分支.一个develop分支.许多的feature分支.许多的releas…
1.什么是版本管理 (多人协作)项目中常见的问题: 代码放在什么地方 ?? 同步(到服务器),代码的冲突问题 ?? 服务器访问权限问题 ?? (代码)服务器内容修改的细节 ?? 项目版本的发布 ?? 版本控制是指对软件开发过程中各种程序代码.配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一. 版本控制最主要的功能就是追踪文件的变更.它将什么时候.什么人更改了文件的什么内容等信息忠实地了已录下来.每一次文件的改变,文件的版本号都将增加.除了记录版本变更外,版本控制的另一个重要功能是…
分支管理 创建项目时,会针对不同环境创建两个常设分支(也可以算主分支,永久不会删除): master :生产环境的稳定分支,生产环境基于该分支构建.仅用来发布新版本,除了从 release 测试分支或 hotfix-* Bug修复分支进行merge,不接受任何其它修改. master 分支上存放的应该是随时可供在生产环境中部署的代码(Production Ready state).当开发活动告一段落,产生了一份新的可供部署的代码时, master 分支上的代码会被更新.同时,每一次更新,最好添加…
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件. 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库. git的功能特性 从一般开发者的角度来看,git有以下功能: 1.从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上. 2.在自己的机器…
转载地址:http://blog.163.com/zhangxuemin_zy/blog/static/10178565520115704031799/ SVN管理多个项目版本库:   安装SVN服务器软件,路径: C:\Program Files\Subversion 在D盘创建svn根目录D:\SVN-CM 命令:cd “C:\Program Files\Subversion\bin”->回车->svnadmin create D:\SVN-CM 3. 在D:\SVN-CM下创建SVNPr…
怎么使用git来管理项目版本和存放代码? 作者:rongfangliu 转载请注明出处:http://www.cnblogs.com/rongfangliu/p/howuseGit.html 工具: msysgit:据说是从unix下移植过来的?下载地址:http://code.google.com/p/msysgit/downloads/list?q=full+installer+official+git 我使用的是Git- 1.8.5.2-preview20131230.exe 这一个: g…
在移动应用开发和运营的过程中,版本管理是一个老生常谈的基础问题,一些版本的基本概念也常常会困扰我们的研发和运营人员.同时,手动管理软件版本,也常常会因为不小心导致后续的发布和更新问题. 这里,我准备了一些 iOS 和 Android 版本的基础知识,以及如何在应用中获取版本信息和如何使用 Xcode 和 Android Studio 自动管理版本号. 版本号解释 无论是 iOS 还是 Android 都定义了两个版本属性: iOS在 Info.plist 中定义 CFBundleShortVer…
SVN管理多个项目版本库: . 安装SVN服务器软件,路径: C:\Program Files\Subversion . 在D盘创建svn根目录D:\SVN-CM . 在D:\SVN-CM下创建SVNProject1.SVNProject2两个SVN项目版本库: 命令:svnadmin create D:\SVN-CM\SVNProject1 svnadmin create D:\SVN-CM\SVNProject2 .为便于配置管理,将所有版本库的“账号密码”和“登陆用户权限”等控制文件指定为…
之前分享过<版本分支管理标准 - Git Flow>,不过在实际使用过程中, 因为其有一定的复杂度,使用起来较为繁琐,所以一些人员较少的团队并不会使用这个方案. 在这基础上,一些新的分支管理标准被提出.这里转发一下这个标准:<Trunk Based Development 主干开发模型>. Preface 在之前的博文中我们介绍了 Git Flow 分支模型,正如文中所说,Git Flow 偏向于控制管理,使用了较多的分支,流程颇为复杂.大量的团队在实践过程中也遇到了颇多问题,其中…
最近好多开发人员在问如何使用 GIT 进行代码的版本管理. 这里转发一个标准的分支版本控制图. 相关的详细介绍,可以看: <引入git flow分支管理> <非常清晰明了的GIT版本管理图>…
概述 Git 是什么 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持. Git 有哪些特性 直接记录快照,而非差异比较 多数操作仅添加操作 近乎所有操作都是本地执行 时刻保持数据完整性 有关以上特性的详细解释,请查看Pro Git的G…
原文链接: Git 分支管理策略 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码? 我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程.所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家. Git flow 在这种模式下,主要维护了两类分支: 主要分支 (The main branch) master develop 辅助分支 (Supporting branch) feature branch…
本篇目录 前言 SVN分支管理策略 VisualSVN Server TortoiseSVN客户端 Repository的创建 Check out trunk创建新项目MyProject trunk更新提交更新,迭代版本创建Tag V1.0 基于Tag的Hotfix Branch Hotfix Branch改动Marge(合并)到trunk中同时创Tag_V1.1进行发布 定制化分支Customize branch 总结 前言 使用svn做为源码管理工具已有几年,但一直都只是使用到了trunk.…
一.远程       Git是分布式版本控制系统,最重要的优点就是远程仓库托管代码.不用自己搭建一个服务器,在github上面注册一个账户就可免费获取远程仓库.      首先需要先在github上面创建仓库.创建步骤百度google都有.      第一次推送的时候需要本地库关联远程库,使用命令git remote add origin git@server-name:path/repo-name.git origin后面实际上是远程库的ssh地址.      关联之后,使用命令git pus…
分支管理策略 下面我们来说一下一般企业中开发一个项目的分支策略: 主分支 master 开发分支 develop 功能分支 feature 预发布分支  release bug 分支 fixbug 其它分支 other 1).主分支 master 代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上发布. Git主分支的名字,默认叫做Master.它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发. 2).开发分支 develop 主分支只用来分布重大版本…
平时在工作中使用 SVN 只是限于 commit,update 这样的操作,至多再 reslove 解决一下冲突,没有用过分支管理.开发过程中一般都是一个功能开发完成之后整体进行提交,而最近在项目中有一个比较大并且开发周期比较长的功能,所以在功能没有完成之前不方便进行提交,所以想到了使用分支管理,边学边用(所以工作最好一定要选开发流程规范的公司). /*环境: * 服务器操作系统 - CentOS 6.6 * SVN 服务器 - Subversion 1.6.11 * 客户端操作系统 - Win…
转载: Git 分支管理是一门艺术 1 要确保:团队成员从主分支(master)获得的都是处于可发布状态的代码,而从开发分支(develop)应该总能够获得最新开发进展的代码. 2 "辅助分支",大体包括如下几类:"管理功能开发"的分支."帮助构建可发布代码"的分支."可以便捷的修复发布版本关键BUG"的分支, 等等. 3 GIT,在技术层面上,绝对是一个无中心的分布式版本控制系统,但在管理层面上,我建议你保持一个中心版本库.…
大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 CentOS 5.5 x86_64,Git 服务器版本:git version 1.8.2.1,客户端版本:git version 1.9.2.msysgit.0.所有软件请到这里下载:http://msysgit.github.io/. 1.前言 在上一篇博客中我们主要讲解了Git 远程仓库,相信大家对…
当我们初始化Git仓库的时候,Git会默认创建一个名为master的主分支.在实际工作中,主分支要求是一个稳定.健壮.安全的主线,一般不允许在主分支上直接进行开发,而是拉取一个新的分支,开发.测试完成后,再将分支合并到主分支上. 使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间. Git 的分支模型可称为"必杀技特性",而正是因为该特性将 Git 从版本控…
1.分支管理  git branch 不仅可以创建和删除分支,还可以做一些其他工作. 1.不带参数的 git branch ,得到本地仓库当前的分支列表.并且会显示,当期所在的分支,也就是HEAD所指向的分支. 2. git branch -v 查看每一个分支上的最后一次commit. 3. git branch --merged 查看已经合并到当前分支的所有分支.注意:已经合并的分支可以使用 git branch -d <branchname> 删除掉. 4. git branch --no…
5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching model ,网上有不少参考这篇文章写的中文版gitflow实践,推荐一个中文版的Git 最佳实践:分支管理. 除了团队git管理的需要,我自己在github上有重要的开源项目采用github flow,这里转载一篇关于这两种分支管理的文章:GitHub Flow & Git Flow 基于Git…
Git—分支管理 分支学习:branch称为分支,默认仅有一个名为master的分支.一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支. branch相关常用命令: git branch 分支名称             创建分支 git checkout 分支名称          切换分支 git branch -m 分支名称        创建并切换到指定分支 git branch                          查看所有分支 g…
分支管理 git branch 命令不只是可以创建与删除分支. 如果不加任何参数运行它,会得到当前所有分支的一个列表: 注意 master 分支前的 * 字符:它代表现在检出的那一个分支(也就是说,当前 HEAD 指针所指向的分支). git branch -v 命令:可以 查看每一个分支的最后一次提交:      git branch --merged 查看哪些分支已经合并到当前分支 :      git branch --no-merged 查看所有包含未合并工作的分支 : git bran…
0.引言 本文参考最后的几篇文章,将git的分支管理整理如下.学习git的分支管理将可以版本进行灵活有效的控制. 1.如何建立与合并分支 1.1分支的新建与合并指令 新建分支 newBranch,并进入新分支: $ git checkout -b newBranch 相当于: $ git branch newBranch $ git checkout newBranch 合并分支 mergeBranch,例如要把mergeBranch,合并入master: $ git checkout mast…
背景 什么是分支?简单地说,分支就是两个相对独立的时间线,正常情况下,独立的时间线永远不会有交集,彼此不知道对方的存在,只有特定情况下,两条时间线才会相遇,因为相遇,所以相知,因为相知,所以改变! 正如分支对于科幻电影来说是一个很好的卖点,关于分支的话题完全可以开启新的题材,对于这点相信不少科幻迷都深有体会,不必赘述. 回归正题,分支对于版本控制系统又意味着什么呢?实际工作中,我们大多作为一个团队一起合作开发项目,如果是独立开发者,只有一个人的话,其实用不到分支的概念,甚至远程仓库也用不到.所以…
关于Git的一些分支管理规范... 一.分支与角色说明 Git 分支类型 master 分支(主分支) 稳定版本 develop 分支(开发分支) 最新版本 release 分支(发布分支) 发布新版本 hotfix 分支(热修复分支) 修复线上Bug feature 分支(特性分支) 实现新特性 Gitlab 角色与项目角色对应关系 Owner(拥有者) Git 管理员 Master(管理员) 开发主管 Developer(开发者) 开发人员 Reporter(报告者) 测试人员 Guest(…
什么是 git-flow? Git Flow是一套使用Git进行源代码管理时的一套行为规范 主分支Master 首先,代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上发布.Git主分支的名字,默认叫做Master.它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发. 开发分支Develop 主分支只用来分布重大版本,日常开发应该在另一条分支上完成.我们把开发用的分支,叫做Develop 这个分支可以用来生成代码的最新隔夜版本(nightly).如果想正…