小型开发团队的 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 中管理 schema.rb 的首选方法是什么?

    我不想添加schema rb to gitignore 因为我希望能够从该文件加载新的数据库架构 然而 保持检查状态会导致各种虚假冲突 而这些冲突很容易通过新的解决方案解决 db migrate reset 基本上我想要一种方法 将 sch
  • 从 Eclipse 的历史视图中删除 ORIG_HEAD 和 FETCH_HEAD

    我最近开始使用 Eclipse Kepler 和 EGit 插件 这些分支不是我习惯的 有没有办法永久阻止这些分支的创建 我尝试手动删除它们 但它不起作用 并且我不想在下次获取或变基时保留它们 据我从对您问题的评论中了解到 您只希望这些参考
  • 从预提交挂钩中排除某些文件类型

    我想要一个预提交 git 钩子来检查 如果可能的话 自动删除 尾随空格 In 让 git 在提交之前自动删除尾随空格 https stackoverflow com questions 591923 make git automatical
  • GitPython - 使用 ssh 密钥克隆 - 主机密钥验证失败

    我在应用程序中克隆 git 存储库时遇到问题 KEY FILE opt app ssh id rsa def read git branch config id branch config RepoConfig objects get id
  • 无法快速删除 Git 中的许多文件

    我删除了 Git 分支中的 777 个文件新功能 by rm example 我愿意承诺 Git 要求我手动删除每个已删除的文件 git rm file 对于所有名称不相似的 777 个文件 编写上述命令将花费大量时间 如何删除我的 Git
  • 为什么 cmake 在 git commit 后编译所有内容

    假设我有时在 Linux 上使用 cmake 2 8 编译一段代码 我更改了一个文件 my changed file 运行 cmake 并且只构建了这个文件 到目前为止 一切都很好 现在我想提交这个 git add my changed f
  • git reword 在变基期间显示合并冲突,但是 pick 工作正常

    我正在尝试用很少提交的另一个分支来重新建立一个分支 虽然提交包括合并提交 但我可以使用以下命令成功地对其进行变基git rebase i r m
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i
  • 以编程方式将工作项关联到拉取请求

    我可以得到 https www visualstudio com en us docs integrate api git pull requests get a pull request https www visualstudio co
  • Subversion 中的版本和项目的良好存储库布局是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们有标准的 Subversion 主干 分支 标签布局 我们有几个针对中长期项目的分支 但到目前为止还没有一个发布版本 这正在快速逼近 我们应
  • Git 用户配置文件 - 自定义忽略

    我们有一个由 5 名开发人员组成的团队致力于硬件项目 我们有一个 user config h 文件 其中包含每个用户的特定环境和偏好的 defines 例如他们使用的硬件版本 是否应该打开声音等 目前 该文件位于我们的 gitignore
  • 无论我做什么,我都无法推送我的代码并不断收到相同的错误

    我正在尝试将代码推送到远程分支 但不断收到此错误 rejected non fast forward error failed to push some refs to email protected cdn cgi l email pro
  • git 标签也会被推送吗?

    自从我创建了我的存储库以来 我所使用的标签似乎 创建不会被推送到存储库 当我做git tag于 本地目录所有标签都存在 但是当我登录到 远程存储库并执行git tag 仅出现前几个 可能是什么问题 你可以这样做 git push tags
  • 将存储库从 Github 移至 Gitlab

    有没有办法将整个存储库从 Github 移动到 GitLab 对于代码本身来说 只需在 GitLab 上创建一个新的存储库并推送到它即可 Wiki 页面位于 Github 上的单独分支中 并通过 Git 机制进行管理 据我所知 GitLab
  • 如何更新我的裸存储库?

    我创建了一个裸存储库来发布我的存储库 但我不知道如何使用主存储库的当前状态更新裸存储库 如果您想复制主存储库中的所有对象 请在主存储库中执行此操作 git push all
  • 撤消多个文件和文件夹“git add”[重复]

    这个问题在这里已经有答案了 我执行了 git add 现在我想恢复 git add 我怎样才能做到这一点 git reset 这相当于git reset HEAD 将取消 add 更常见的是 取消暂存 所有文件 In Git revert用
  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config
  • git 索引到底包含什么?

    Git 索引到底包含哪些内容 可以使用什么命令查看索引内容 感谢您的所有回答 我知道索引充当暂存区 提交的内容是在索引中而不是工作树中 我只是好奇索引对象由什么组成 我猜它可能是文件名 目录名 SHA 1 对的列表 也许是一种虚拟树 在 G
  • 获取 git 存储库中每个文件的提交计数

    我正在寻找一种方法来查看有关 git 存储库中每个文件更改频率的统计信息 基本上 文件提交的频率实际上与以前的版本不同 此外 有没有办法获取文件上次更改的日期 我是一个 git 新手 还没有发现任何关于此的信息 任何帮助将不胜感激 这里有两
  • 本地分支显示在 GitHub 的“网络”视图上

    我们使用 Git 我们的工作流程由 dev 和 master 分支组成 它们位于 GitHub 和每个开发人员的本地存储库上 不会直接在 master 或 dev 上执行任何工作 而是在本地分支中执行工作 并且仅在 dev 上进行合并 然后

随机推荐