开发流程、部署、GitHub

2024-02-28

我正在努力为我们的团队制定一个开发流程。

任何时候,我们都有 3/4 分散的开发人员在我们的代码库上工作。

我们已经开始使用 GIT,我们的想法是,工作不仅仅是实时修复,然后他们分叉了 master 分支。

每个人在服务器上都有自己的开发环境,并且我们有一个临时环境,该环境始终应该是主分支的副本。

开发人员在本地进行开发,然后合并回主分支,然后主分支应将更改推送到临时服务器(我想设置这样的东西 http://net.tutsplus.com/tutorials/other/the-perfect-workflow-with-git-github-and-ssh/).

如果全部获得批准,则应实时复制更改。我想以某种方式自动化此操作,但不确定具体如何。我们正在使用 GitHub,所以我确信那里有自动部署脚本。

不过,我们只有 1 个实时服务器,因此如果只有主分支上更改的文件可以部署到实时服务器,那就太好了。

有什么想法如何做到这一点?

这种方法合理吗?

还有其他评论/警告吗?

做这样的事情需要负载均衡器吗?


我公司紧随最近的这个博客 http://blog.romebuilder.com/2011/07/448/.

我们创造了master生产分支。我的案例是网络开发.

我们做的步骤是

开发人员从以下地方分叉出他们的功能/错误master

git checkout -b feature/featureA
git checkout -b bug/B

通过这种方式,我们将获得已经发布的新代码。在登台服务器中,我们使用testing分支。因此,当任何功能想要进行测试时,它将合并到该分支

在登台服务器中我们使用

git checkout testing
git pull

release处理热修复的分支,每个热修复都会在合并到主分支之前合并到这个分支。这个想法是,release 分支将在合并到 master 之前打包一些提交,如果出现问题,它只需使用如下命令

git reset --hard HEAD^

暂时的。

让我们看看我的完整工作步骤

git checkout master # Go to Master
git checkout -b feature/New  # New branch

老板发来电子邮件修复严重错误

git stash 
git checkout master
git checkout -b hotfix/a

做事

git commit
git checkout release
git merge hotfix/a
git checkout master
git merge release # In case that you want to pack all ready to production

生产中

git tag -d previous
git tag previous
git pull

哎呀!不工作

git checkout previous

新提交合并

git checkout master
git pull

继续我的工作

git checkout feature/New
git stash pop #Restore workspace
git commit
git checkout testing # ready to mix a test
git merge feature/New

准备发布该功能

git checkout release
git merge feature/New

这是因为测试分支中的所有内容都已准备好部署。因此,当将所有准备好的功能合并到release分支,现在,你可以进行最后的测试了。

当一切现在都投入生产时,我们会这样做

git checkout testing
git merge master
git checkout release
git merge master

自动化脚本

我想你可以看看.git/hooks/post-commit.sample在提交代码后连接一些脚本?反正我从来不用它。

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

开发流程、部署、GitHub 的相关文章

  • Github - 自动将问题分配给项目

    我想将问题自动分配给 Github 中的项目 基本上自动为每个自动打开的问题自动生成以下屏幕截图 有任何想法吗 有两个本机支持的选项 有一个官方操作可以添加问题并拉取请求projects https docs github com en i
  • Github 贡献图中未显示进度?

    我在 github 中的存储库是公开的 当我通过命令行将文件从本地系统推送到 github 时 新贡献不会显示在贡献直方图中 但是 当我将任何文件直接添加到 github 的存储库中时 贡献会显示在直方图中 这是什么原因呢 一个可能的原因是
  • 如何在 Github Action 中使用 Github 发布版本号

    我创建了一个 Github 存储库 其中包含构建 npm 包并将其发布到 npmjs com 的操作 我的行动的触发因素是在 Github 上创建一个新版本 创建新版本时 Github 要求我提供版本号 我很想在操作中使用这个版本号并将其提
  • 没有工作树就无法使用 Git-Windows-git-pull

    我在 Windows 上遇到与 Git 相关的问题 无法从 git 上的存储库中提取更改 我能够添加 提交和推送我的更改 但不能拉取 它给了我一个错误 致命 C Git libexec git core git pull 不能在没有 工作树
  • 如何在 github 中拉取请求时忽略或排除文件

    我们有 4 个分支 1 dev 2 qa 3 staging 4 master 我们要更新并添加1 dev中的CODEOWNERS文件中的一些人 2 qa到4 master的CODEOWNER文件将被保留 因为 1 dev 有 4 个审稿人
  • 复合运行步骤 GitHub Actions 错误:“在 URI 处找不到操作”

    我正在尝试在 GitHub Actions 上使用复合运行步骤操作 如上所述here https github blog changelog 2020 08 07 github actions composite run steps 7E
  • Markdown/Github:作为列表子项的代码块的语法突出显示

    在Github MD中 如果我们想在列表的子级时启用代码块 我们需要用8个空格来表示它 但是如何让该代码块具有语法高亮功能呢 以下代码无法按预期工作 1 foo python print bar 2 bar python print bar
  • git commit 给出错误:空提交集已通过

    当尝试恢复到以前的提交时 我尝试了 git revert no commit 0766c053 HEAD 然而这给出了一个错误 empty commit set passed 问题 该错误是什么意思 以及出了什么问题revert命令 删除
  • 从 Git 中的分支父级中提取更改

    如何从 Git 中的分支的父级中提取更改 特别是在 github 配置的项目中 例如 假设我分叉了http github com originaluser originalproject http github com originalus
  • MSBuild:OutputPath 目录为空

    我想部署我的 ASP NET MVC 站点并具有以下脚本
  • 如何从 Visual Studio 2013 将现有解决方案添加到 GitHub

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

    我在通过 HTTPS 克隆私有 GitHub 存储库时遇到问题 如果我尝试使用以下方式克隆我的存储库 git clone https github com username repository 我收到错误 fatal remote err
  • 收到别人的pull-request,如何编辑然后直接在github上合并?

    作为参考 这里是一个命令行git解决方案如何处理审查拉取请求 修改代码和合并 https stackoverflow com questions 27355333 how to handle review a pull request mo
  • 添加 Git 远程后“致命:拒绝合并不相关的历史记录”

    我已将远程存储库添加到我正在使用的文件夹中 git remote add origin https github com
  • 图表贡献者为空

    我在 github 上有几个项目 但其中一些项目的贡献者图是空的 即使我的 gitconfig 设置了名称和电子邮件 https github com jlengrand batchWaterMarking graphs contribut
  • 使用 GitHub 时防止将大文本文件添加到提交

    我们想要防止 非常大的文本文件 每个文件 gt 50MB 被提交到git代替git lfs 因为它们夸大了 git 历史 问题是 其中 99 大小差异的原因 这些是 YAML 文件 它们支持通过 Base64 编码进行二进制序列化 我们无法
  • 在 git 中编辑分支?

    我在 github 网站上创建了一个分支 该分支不在我的本地存储库中 如何将该分支带到我的本地计算机 对其进行编辑 然后将其推送回我的 github 帐户 在本地工作目录中输入 git fetch origin newbranch git
  • 发布预编译的 ASP.net-MVC VS2010

    我找到了几个使用构建后事件的解决方案 有没有办法publishASP NET MVC 网站带有编译视图 以防止第一个用户查看延迟 但是不编译 them 在开发环境中 更快地编译网站 谢谢你 附 理想情况下 在 Visual Studio 2
  • 恢复后如何挑选提交?

    我正在研究我的feature branch并在审核后合并到development待部署 后来 一位同事决定发布一个版本 并将他和我的合并到master 在部署时 他意识到他的代码有错误并恢复了master 在我们的分叉和拉动流程中 这意味着
  • log4net 控制台应用程序未登录发布

    我有一个使用 log4net 的控制台应用程序 通过温莎城堡 当我调试时 一切都很好地记录到控制台 但是当我发布并运行应用程序时 没有记录任何内容 我的 log4net 配置位于单独的文件 log4net config 中 我认为它没有找到

随机推荐

  • 如何创建一个 React Native ios 共享扩展应用程序

    我希望我的反应本机应用程序可以从 Whatsapp Skype 照片共享 我尝试使用反应本机共享扩展 https www npmjs com package react native share extension但它只在 Safari 浏
  • watchOS 2.2 应用程序如何确定其配对的 iPhone 是否已切换到另一台 Apple Watch?

    我正在尝试在我的 iOS 9 3 watchOS 2 2 应用程序中支持与多个手表配对的新功能 它似乎运行良好 只是我无法弄清楚 watchOS 应用程序如何确定配对的 iPhone 是否已切换到另一台 Apple Watch The do
  • 从 NSBundle 获取 nil 路径

    我在项目中创建了一个新文件夹 在其中复制了图像 称为 io jpg 我还检查了构建阶段 gt 复制捆绑资源 文件就在那里 所以我试图获取这张图片的路径 NSBundle bundle NSBundle mainBundle NSString
  • ActiveMQ如何处理关闭的会话

    我正在使用 ActiveMQ 将电子邮件消息排入队列 消费者读取队列并发送电子邮件 在启动时 我注册一个生产者并永久缓存它 PooledConnectionFactory factory new PooledConnectionFactor
  • 词法或处理器问题:未找到 boost/config/user.hpp' 文件

    当我在 Xcode 中运行 React Native 应用程序时 它显示错误 boost config user hpp 文件未找到 而且当我使用命令 react native run ios 运行应用程序时 我在终端中收到错误 Comma
  • gdax-java 作为库的实现

    我正在尝试实现这个API https github com robevansuk gdax java https github com robevansuk gdax java以便能够通过 Coinbase 创建订单 提取资金和存入资金并在
  • 在ANDROID中打开一个activity而不在manifest文件中声明它?

    我想打开一个活动而不在清单文件中声明它 我不知道这是否可能 我真正想要的是使用意图从我的程序中动态打开一个活动 如果可能的话 任何人都可以帮助我吗 不可能 虽然我不确定你的意思是 动态打开活动 See http developer andr
  • 覆盖 FOSUserBundle 路由 Symfony2

    我想覆盖 FOSUserBundle 的一些路由 MyBundle Resources config routing security yml fos user security login path locale login defaul
  • Spyder 内部问题,如何解决?

    我对编码完全陌生 但是 当我尝试运行如图所示的一些代码时 出现了这个问题 我尝试重新安装但不起作用 Spyder 维护者在这里 带来不便敬请谅解 这是 Anaconda 中的一个错误 我们已经向他们报告了该错误 但尚未修复 如果您只需要使用
  • 将 SVG 元素添加到 html 文件中?

    我想将一些 SVG 元素添加到 html 文件中 我发现链接说不支持此功能 文档类型必须是 xhtml 但我正在使用一些带有 html 的 javascript 库 这些库允许我在其中使用 SVG Raphael SVG Web 等 那么有
  • 在开发过程中禁用浏览器缓存 css 和 js 文件

    如何在应用程序开发过程中禁用浏览器缓存 以便每当我们对本地主机 或任何开发环境 中的 css 或 js 文件进行任何更改时 我们都不必在浏览器上进行硬刷新才能看到更改 对所有 css 和 js 都尝试这个 这个例子你应该在所有css和js中
  • Laravel 中间件单元测试

    我正在尝试在 Laravel 中为我的中间件编写单元测试 有谁知道教程 或者有这方面的例子吗 我已经写了很多代码 但是一定有更好的方法来测试handle方法 使用 Laravel 5 2 我通过向中间件传递带有输入的请求和带有断言的闭包来对
  • 如何让 Scalaz ZIO 变懒?

    我有一个严重的副作用函数 想想数据库调用 我想将其用作惰性值 以便仅在第一次使用时调用它 如果从未使用过则根本不会调用 我该如何使用 ZIO 做到这一点 如果我的程序如下所示 则该函数仅被调用一次 但甚至根本不使用结果 import sca
  • 登录页面Cognito的定制

    我知道可以在 Cognito 提供的登录页面上自定义一些值 但这对我来说还不够 是否可以完全定制 我只使用网络应用程序中的第三方联合身份验证 是否可以更改灰色背景 或者放在那里完全不同的观点 由于背景灰色无法再修改 我们可以使用一些 CSS
  • 如何分析Websphere core*.dmp 文件和Snap*.trc 文件?

    全部 我的应用程序在 websphere 应用程序服务器 7 0 上运行 我得到了一些核心转储和跟踪文件 例如 核心 20110909 164930 3828 0001 dmp and 快照 20110909 164930 3828 000
  • 使用 Flash、PHP、Red5 从浏览器录制视频

    我希望构建一个应用程序 使用它可以录制视频 以及音频 和音频 最好仅录制 mp3 格式的音频 根据我所做的一些研究 我发现我需要一个 Flash 或 Flex 客户端应用程序 一个 RTMP 服务器 RED5 最好 因为它是免费的 这是我用
  • 加载时重置缩放级别

    我没有 iPhone 所以无法自己测试这一点 但根据客户的说法 如果他放大以更轻松地单击链接 那么当下一页加载时 页面会保持放大状态 而用户必须手动缩小再次 请注意 这不是响应式网站 它没有设置元宽度 设备宽度 有什么办法可以防止这种情况发
  • 何时调用obtainPermanentIDsForObjects:?

    我目前遇到一个问题 即在后台子线程 其父级是主 UI 线程上下文 上创建新对象并保存会导致我的NSFetchedResultsController显示两个新对象 一个带有临时对象objectID 以及一个具有永久objectID 这似乎是某
  • 在 Chrome 中将焦点设置在 iframe 上

    我有一个 iframe id chat with designMode on 在 Chrome 中 在 Enter 按键事件上我调用该函数send 它获取 iframe 内容并将其写入套接字 我的问题是 当清除 iframe 时 我失去了焦
  • 开发流程、部署、GitHub

    我正在努力为我们的团队制定一个开发流程 任何时候 我们都有 3 4 分散的开发人员在我们的代码库上工作 我们已经开始使用 GIT 我们的想法是 工作不仅仅是实时修复 然后他们分叉了 master 分支 每个人在服务器上都有自己的开发环境 并