首页 > 解决方案 > git 工作流程(发布 + 特殊提交)和使用 featureX 分支开发分支

问题描述

  1. releasedevelop分支分支分支。
  2. 然后我不得不release在最后一刻恢复分支的更改。
  3. 开发中不需要还原,因为我们将在下一个版本中发布该功能。所以,我没有revert进去develop
  4. 开发人员 X 已经featureXdevelop.
  5. 他合并releasefeatureX采取任何热修复。
  6. featureX融入develop.
  7. 瞧!!代码现在也不在develop。请记住,(3) 这不是故意的。

我们如何解决这个工作流程?

我尝试了什么:

a) 我revert + revert's revertdevelop. 但是当featureX被合并时develop,我仍然看到代码丢失。

b) 我先revert + revert's revert + develop合并featureX到. 我仍然看到代码丢失。featureXdevelop

什么是正确的做法?

从 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 与revertindevelop有不同的提交 ID revertreleasegit 没有办法知道它。:(

标签: git

解决方案


您永远不应该将发布的修补程序合并到功能分支中。在我看来,修补程序应该只合并回开发,而开发可以合并到功能分支中以使其保持最新。

所以,为了解决你的问题,我会这样做:

  1. 发布时的最后一刻恢复 - 这基本上就是一个修补程序。
  2. 立即合并回开发,造成临时代码丢失。
  3. 在开发时恢复最后一分钟的恢复。
  4. 合并发展成为特色。
  5. 将功能合并到开发中。

此处不应丢失任何更改。这是有效的,因为您要在合并到功能之前恢复开发时恢复的更改。

这具有副作用,即发布存在的更改存在于功能中,而您的方法并非如此。


推荐阅读