小型开发团队的 Git 分支策略 [关闭]

2024-04-26

我们有一个网络应用程序,几乎每天都会更新和发布。我们使用 git 作为我们的版本控制系统,我们当前的分支策略非常简单且不完善:我们有一个主分支,我们将我们“感觉良好”的更改检查到其中。这有效,但只有在我们签入重大更改之前才有效。

有没有人有最喜欢的 git 分支策略小团队满足以下要求:

  1. 非常适合 2 到 3 名开发人员的团队
  2. 轻量级,没有太多流程
  3. 允许开发人员轻松隔离错误修复和更大功能的工作
  4. 允许我们保持稳定的分支(对于那些我们必须让生产服务器正常工作的“糟糕”时刻)

理想情况下,我很乐意看到您为开发人员处理新错误的分步过程


您可能会受益于 Scott Chacon 中描述的工作流程Pro Git http://git-scm.com/book。在此工作流程中,您有两个始终存在的分支,master and develop.

master代表项目最稳定的版本,您只能从该分支部署到生产环境。

develop包含正在进行的更改,可能不一定已准备好用于生产。

来自develop分支,您可以创建主题分支来处理各个功能和修复。一旦您的功能/修复准备就绪,您就可以将其合并到develop,此时您可以测试它如何与您的同事合并的其他主题分支交互。一旦develop处于稳定状态,将其合并到master。从以下位置部署到生产环境应该始终是安全的master.

Scott 将这些长期运行的分支描述为代码“孤岛”,其中不太稳定的分支中的代码最终将“升级”到经过团队测试和普遍批准后被认为更稳定的分支。

一步一步地,您在此模型下的工作流程可能如下所示:

  1. 您需要修复一个错误。
  2. 创建一个名为myfix这是基于develop branch.
  3. 处理此主题分支中的错误,直到它被修复。
  4. Merge myfix into develop。运行测试。
  5. 您发现您的修复与另一个主题分支冲突hisfix你的同事并入develop当您进行修复时。
  6. 做出更多改变myfix部门来处理这些冲突。
  7. Merge myfix into develop并再次运行测试。
  8. 一切正常。合并develop into master.
  9. 部署到生产环境master任何时候,因为你知道它是稳定的。

有关此工作流程的更多详细信息,请查看分支工作流程 http://git-scm.com/book/en/Git-Branching-Branching-WorkflowsPro Git 中的章节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小型开发团队的 Git 分支策略 [关闭] 的相关文章

  • 连接两个 Git 存储库的历史记录?

    我有一个旧的 Git 存储库 请调用它app 然后 一年后 我想从头开始重建应用程序 所以我创建了一个新的存储库 称之为app 2 现在 我意识到我应该创建一个新分支或其他东西 而不是一个新的存储库 因为我想移动app 2在之上app然后摆
  • 撤消 git merge(尚未推送)

    我只是将一些更改提交到我的功能分支之一 feedback tab 然后签出 master 并将它们合并到那里 我实际上打算将它们合并到我的 开发 分支中 现在 master 领先于 origin master 其远程 17 个提交 我还没有
  • 通过 Git/SVN 将前缀 ? 添加到代码中

    怎么加前缀 v VersionNumber使用 Git SVN 高效地访问存储库中的每个文件 我发现 SO 使用这种做法为其存储库中的每个特定文件提供版本号 他们使用SVN 我想知道如何使用 Git 做同样的事情 举几个例子 1 2 在你的
  • 从 Git 中的分支父级中提取更改

    如何从 Git 中的分支的父级中提取更改 特别是在 github 配置的项目中 例如 假设我分叉了http github com originaluser originalproject http github com originalus
  • git推送失败:`拒绝更新签出的分支:refs/heads/master`

    我想将我对 JBoss 配置的本地修改存储在 git 中 为此 我设置了以下结构 lrwxrwxrwx 1 jboss jboss 19 Jan 24 11 53 current gt jboss as 7 1 0 CR1b drwxr x
  • 将生成的文件存储在 Git 中

    我们有一个相当大且过于混乱的代码库 我们希望使用 Git 进行迁移 目前 它是一个大的整体块 不能轻易地分割成更小的独立组件 该代码构建了大量共享库 但它们的源代码如此交错 目前无法将其干净地分离到单独的存储库中 我不太关心 Git 是否可
  • Maven 找不到 .git (dotGitDirectory)

    我有一个与所问问题类似的问题here https stackoverflow com questions 31159484 mavengit commit id plugin git directory could not be found
  • 如何从 Visual Studio 2013 将现有解决方案添加到 GitHub

    我浏览了许多关于 VS 2013 中新的 Git 集成的网页 它们不涉及向 Github 添加现有解决方案 事实上 我找不到太多关于使用 GitHub 而不是 Visual Studio Online 的信息 谁能告诉我如何从现有解决方案开
  • 将新文件推送到新存储库 Git

    我是 git 新手 还没有完全了解工作流程 因此 我在 github com 上创建了一个存储库 并且能够从我的计算机推送所有文件 现在我已经在 github 上创建了一个新的存储库 并在我的计算机上创建了一个新文件夹 所有内容都从新文件夹
  • 无法通过 HTTPS 克隆私有 Github 存储库

    我在通过 HTTPS 克隆私有 GitHub 存储库时遇到问题 如果我尝试使用以下方式克隆我的存储库 git clone https github com username repository 我收到错误 fatal remote err
  • 即使在签出到另一个分支后也无法删除本地分支

    我正在尝试删除我的本地分支并尝试了我在这里找到的大多数解决方案 即签出到另一个分支然后运行git branch D or d
  • git-svn 期间“RA 层请求失败:REPORT 请求失败”

    我一直在尝试使用以下命令 Git 克隆 Google Code SVN 存储库 git svn clone stdlayout https wtorrent project googlecode com svn wtorrent git 它
  • 如何在GIT中检出单个文件

    我们开发了一个自动部署工具 用于在 jboss 服务器中部署文件 ear war 和 jar 开发人员将在 Visual Source 安全中签入文件 自动部署工具会自动一一检出开发者指定的最新文件 并使用API 将其部署到jboss服务器
  • BitBucket+Jenkins:仅在特定分支更改时触发构建

    以下是该问题的据称解决方案 尽管它看起来确实是一种解决方法 而不是最终的解决方案 有没有一种方法 通过作业配置或 bitbucket 挂钩配置 我可以将作业设置为仅在推送到特定分支时运行构建 是否可以仅从一个特定分支触发 Jenkins h
  • 在 GitHub 上更新拉取请求后如何恢复审核流程?

    我分叉了 GitHub 存储库并创建了拉取请求 审稿人要求我修改 要求更改1 条评论请求由具有写入权限的审阅者进行更改 了解更多 https docs github com en github collaborating with issu
  • 如何列出当前正在验证的拉取请求中更改的所有文件(在 VSTS 中)?

    我有一个 PR 验证版本 我想列出 PR 中更改的所有文件以及状态 源在每个构建上同步 因此 在合并 PR 更改之前 源位于修订版A 通常origin master 让我将 PR 合并提交指定为B 我当前的实现调用git diff tree
  • 从TFS迁移到GIT,共享项目到nuget

    我所在的软件团队由 4 5 名开发人员组成 他们从事一个 TFS 项目 我们正在考虑将整个代码库移至 GIT 该代码库由约 50 个 Visual Studio 2013 解决方案组成 分为约 300 个项目 引用项目中另一个程序集的首选过
  • 在 git 中编辑分支?

    我在 github 网站上创建了一个分支 该分支不在我的本地存储库中 如何将该分支带到我的本地计算机 对其进行编辑 然后将其推送回我的 github 帐户 在本地工作目录中输入 git fetch origin newbranch git
  • git push heroku master 通过代理后面的 ssh 出现错误

    简要背景 大家好 我是一名大学生 代理 10 3 100 211 8080 刚接触 ROR Git 和 Heroku 一直在关注 Ruby on Rails 教程 我解决了通过 ssh 推送 git repo 的问题 在我的 ssh con
  • 更改 git diff 输出前后的行数

    我想增加更改之前和之后显示的行数git diff output 类似于grep A3 B5 根据git diff help git diff支持与标准相同的参数diff命令 w r t 上下文 U

随机推荐