git - git 工作流程(发布 + 特殊提交)和使用 featureX 分支开发分支
问题描述
- 我
release
从develop
分支分支分支。 - 然后我不得不
release
在最后一刻恢复分支的更改。 - 开发中不需要还原,因为我们将在下一个版本中发布该功能。所以,我没有
revert
进去develop
。 - 开发人员 X 已经
featureX
从develop
. - 他合并
release
到featureX
采取任何热修复。 - 他
featureX
融入develop
. - 瞧!!代码现在也不在
develop
。请记住,(3) 这不是故意的。
我们如何解决这个工作流程?
我尝试了什么:
a) 我revert + revert's revert
在develop
. 但是当featureX
被合并时develop
,我仍然看到代码丢失。
b) 我先revert + revert's revert + develop
合并featureX
到. 我仍然看到代码丢失。featureX
develop
什么是正确的做法?
从 git 的合并文档中:
Then "git merge topic" will replay the changes made on the topic branch since it diverged from master (i.e., E) until its current commit (C) on top of master, and record the result in a new commit along with the names of the two parent commits and a log message from the user describing the changes.
由于我的 in 与revert
indevelop
有不同的提交 ID revert
,release
git 没有办法知道它。:(
解决方案
您永远不应该将发布的修补程序合并到功能分支中。在我看来,修补程序应该只合并回开发,而开发可以合并到功能分支中以使其保持最新。
所以,为了解决你的问题,我会这样做:
- 发布时的最后一刻恢复 - 这基本上就是一个修补程序。
- 立即合并回开发,造成临时代码丢失。
- 在开发时恢复最后一分钟的恢复。
- 合并发展成为特色。
- 将功能合并到开发中。
此处不应丢失任何更改。这是有效的,因为您要在合并到功能之前恢复开发时恢复的更改。
这具有副作用,即发布中不存在的更改存在于功能中,而您的方法并非如此。
推荐阅读
- excel - 如何创建 Outlook 电子邮件并调整所有图像的大小
- javascript - 无法在 Firefox 中始终将 SVG 绘制到 Canvas 元素
- extjs - 带有子面板和圆环图的 ExtJS 面板布局
- css - CSS饱和过滤器问题
- javascript - 如何在谷歌云函数中获取 .js api
- python - 'str' 对象不可调用 GDAL 接近度
- javascript - 为什么不设置这个 cookie?
- lightgbm - LightGBM plot_tree() 叶数
- kotlin - 从 Firebase 存储加载图像而不是使用 Kotlin 使用 glide 加载图像
- django - Django 管理页面。当我运行服务器时,一切都会好起来的,但是当我尝试登录管理页面时,我将失去连接