Git 是最流行的版本管理工具,我也是刚刚接触git,系统的学习了下Git的团队开发Branch Model,发现网上已经给出的最佳实践如下:
更详细的信息,请直接参考原文章链接:
http://nvie.com/posts/a-successful-git-branching-model/ (最佳实践的来源,强烈推荐读一下)。
http://www.ruanyifeng.com/blog/2012/07/git.html (上一篇文章的中文翻译和简化,没有原始文章清晰)
http://scottchacon.com/2011/08/31/github-flow.html (git-flow 根据第一篇的最佳实践总结出来的模式性的东西)
最佳实践如下(源于最佳实践一文):
- 任何系统或项目都常备两个 Branch, Master 和 Developer,这两个branch 永远不会删除。
-
Master branch 标志了系统的最初版本和稳定功能,如果Master branch 有提交,那么一定表示有新的稳定功能或者 bug 修改,需要重新发布新版本。版本策略由项目组独立制定,比如较大的功能发布,可以升级大版本 (v1.1.0 -> v1.2.0), hot bugfix 可以发布小版本 (v1.1.0 -> v1.1.1)等。
- Develop branch: 最初是从 Master branch 拉出。是功能开发的 upstream branch。 所有开发的功能都要 merge 到 此 branch,进行最终的集成或回归测试。如果测试通过了,那么会将功能merge 回 master(注意不是直接merge,下面会讲到),进行正式的发布。
2. 中间的branch,随需要拉出,功能执行完成后删除。主要包括如下几种:
- feature branch。故名思议,feature branch 是真正的功能开发的branch。为什么 feature branch,而不是直接在 develop branch 上开发? 因为团队合作! 如果需要并行的开发多个feature,那么在一个 develop branch上开发明显是不合适的,不内聚,容易造成错误。每个 feature 开发,都需要单独从 develop branch 拉出一个独立的feature 分支,开发并测试完成后,需要在合并到 branch 分支,然后进行验证和回归测试。确认没有问题后,删除 feature branch。
- release branch。release branch 专门用于预发布的。 feature branch上进行了功能的开发,测试通过,并合并到develop branch 上了。这时可以发布新的功能了。为什么不直接从 develop branch merge 到 master branch 并直接发布? 因为在发布的时候,我们可能还需要做一些细节上的微调工作,比如开发时版本号可能是 snapshot,到正式环境上需要去掉 snapshot,比如需要连接正式的数据库进行下验证,修复下验证中发现的一些bug。这些都是在 release branch 上进行的。release branch 工作完成后,需要 merge 到 master branch,正式发布。注意 release branch 也要 merge 回 develop 分支,确保所有的修改都同步到了 develop 分支。
- hotfix分支。上面的分支已经能够确保我们从开发到上线的流程都成功了。但是有时候在线上会发现一些比较hot 的bug,需要立即修复。这个时候走正常的 feature release 到发布显然是不能满足要求的。此时应该直接修改 master ,并合并到 develop branch. 这就是 hotfix branch 存在的理由。从 master branch 拉出 hotfix branch,bug fix 并验证后,合并到 master 和 develop。
具体的拉出分支的命令及merge 命令,请参考最上面推荐的链接。
相关推荐
总结以上知识点,Git团队协作的过程涉及到从项目的初始化、开发前设置、协同开发、代码提交到Pull Request的整个流程。这其中,熟悉各种Git命令、理解rebase和merge的区别、掌握分支管理和Pull Request的使用,是...
Git是分布式版本控制系统,常用于软件开发中的代码版本管理,特别是在Web前端开发中,它扮演着至关重要的角色。本文将详细介绍Git的使用规范,旨在解决多个人协作开发时可能出现的各种问题,提高代码管理的精度和...
以下是对"git分支版本管理.pdf"中提到的知识点的详细说明: 1. **主分支(master)**: 主分支代表了项目的正式发布版本,通常是最稳定的代码库,只包含已验证并上线的代码。 2. **开发分支(dev)**: 开发分支...
Git 是一款强大的分布式版本控制系统,广泛应用于软件开发领域,尤其在团队协作中发挥着至关重要的作用。本文主要探讨了在团队中如何有效地使用 Git,以实现高效的工作流程和规范,从而提高团队的长期工作效率,灵活...
此规范适用于所有使用Git进行版本控制的开发团队成员,包括但不限于开发人员、测试人员和运维人员。 1.3 **适用范围** 本规范涵盖了日常开发流程中的各个阶段,包括代码创建、修改、合并和发布等操作,以及不同...
团队开发中 Git 最佳实践 在团队开发中,使用 Git 是一种非常流行的选择,但是如果...在团队开发中使用 Git 需要遵守一些基本原则和规范,养成良好的习惯,选择合适的工具和分支模型,以提高团队开发的流畅度和质量。
Git 是一种分布式版本控制系统,广泛应用于软件开发中,通过记录每次变更,使得项目的历史版本得以保存,同时也方便团队协作。在"流程管理-发布流程 Git版本管理机制 ppt培训"中,Git 被用于整个发布流程,包括版本...
从给定的文件信息中,我们可以提炼出一系列与IT行业,特别是软件开发和项目管理相关的知识点,主要聚焦于Git的使用、敏捷项目管理方法、以及Redmine作为项目管理平台的应用。下面将对这些知识点进行详细阐述。 ### ...
Git是一款广泛使用的分布式版本...总的来说,Git提供了一套完整的工具,用于高效地进行项目版本控制,无论是单人开发还是团队协作。掌握Git的基本命令和工作流程,能够帮助用户更高效地管理项目变更,提高开发效率。
《XXX软件Git发布管理流程规范V1.1(简化)》文档主要针对小团队的软件发布...通过遵循此规范,小团队可以有效地组织和管理软件的git发布,确保开发、测试和生产环境的顺利过渡,同时提高问题解决速度和团队协作效率。
`git-flow` 是一个基于 Git 的分支管理模型,由 Vincent Driessen 提出,并通过一系列的工具和命令来进行高效的项目分支管理和版本控制。该模型旨在简化团队协作流程,提高代码管理效率。本文将详细介绍 `git-flow` ...
Git代码版本控制系统与MySQL数据库设计是软件开发中的关键组成部分,它们在协同开发和数据存储方面发挥着重要作用。...同时,利用自动化工具进行数据库版本管理,可以简化复杂的部署流程,提高开发团队的生产力。
这种特性使得Git在团队协作中更加灵活,减少了冲突的可能性。 - **SVN**(Subversion)是一种集中式的版本控制系统。所有数据都存储在一个中心服务器上,开发者的工作站只保存当前版本的文件副本以及一个指向中心...
Git是分布式版本控制系统,用于跟踪和管理软件开发过程...遵循上述Git使用规范,可以有效地组织开发流程,降低协作中的冲突,保证代码质量,同时也便于版本管理和追踪。这对于任何C#或其他语言的IT项目都是非常重要的。
版本管理工具是一种用于跟踪文件更改历史的软件,特别是在软件开发过程中,它能够帮助开发者有效地管理代码的不同版本,以便于追踪更改、恢复旧版本以及协同工作。常见的版本管理问题包括: - 文件版本混乱:在开发...
Git是世界上最流行的分布式版本控制系统,它允许开发人员协作并跟踪代码的更改。Git-2.30.0.2-64-bit.zip是一个包含Git 2.30....理解并掌握Git的使用是现代软件开发中的必备技能,可以帮助团队更好地管理和维护代码。
Git 是一个广泛使用的分布式版本控制系统,特别是在软件开发领域,它为多人协作提供了强大的工具。然而,如果不正确地使用,Git 可能导致严重的问题。在本文中,我们将深入探讨两个 Git 集成使用中的禁忌:禁止执行 ...
- 分支管理是 Git 中非常重要的一部分,它能够有效支持多人协作,并有助于组织和管理不同的开发任务。 #### 四、服务器上的Git **4.1 协议** - **本地协议**:适用于本地文件系统的访问。 - **SSH协议**:安全地...