git workflow for(release + special commit)&使用featureX分支开发分支

时间:2018-06-02 14:42:59

标签: git

  1. 我从release分支分叉develop分支。
  2. 然后,我必须在最后一分钟恢复release分支的更改。
  3. 开发中不需要恢复,因为我们将在下一版本中发布该功能。所以,我revert中没有develop
  4. 开发人员X已经从featureX开始develop分支。
  5. 他将release合并到featureX以进行任何修补程序。
  6. 他将featureX合并到develop
  7. 瞧!!代码现在也不在develop中。请记住,(3)这不是故意的。
  8. 我们如何修复此工作流程?

    我尝试了什么:

    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.

    由于revert中的developrevert中与release的提交ID不同,因此git无法了解它。 :(

1 个答案:

答案 0 :(得分:0)

永远不要将发布中的修补程序合并到功能分支中。在我看来,只有将修补程序合并回来才能将开发和开发合并到功能分支中以使它们保持最新。

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

  1. 发布时的最后一分钟还原 - 基本上只是一个修补程序。
  2. 合并回来立即开发,导致临时代码丢失。
  3. 恢复发展的最后一刻还原。
  4. 合并发展成功能。
  5. 将功能合并到开发中。
  6. 此处不应丢失任何更改。这是有效的,因为您在合并到功能之前恢复了开发时的恢复更改。

    这会产生副作用,即发布中的更改存在于功能中,而您的方法则不然。