Git工作流程 - 从发布分支恢复功能分支

Ric*_*ead 9 git workflow github git-merge continuous-deployment

我正在尝试了解创建git-workflow的问题

我们正在考虑使用功能分支一次开发多个功能,所以我们说:

- F1 (Feature 1)
- F2 (Feature 2)
- F3 (Feature 3)
Run Code Online (Sandbox Code Playgroud)

我们刚刚完成了功能1和3,并将它们合并到我们的开发分支中进行集成测试:

-F1---Commit1---Commit2----------------------------------
-F2--------Commit1---------------------------------------
-F3--------------------------Commit1---------------------
-Development-------Merge-F1------------Merge-F2----------
Run Code Online (Sandbox Code Playgroud)

开发部门正处于前沿,并作为夜间构建的一部分被释放.当我们对此感到满意时,此分支将合并到一个临时分支中,然后用于客户端审核:

-F1---Commit1---Commit2---------------------------------------------
-F2--------Commit1--------------------------------------------------
-F3-------------------------Commit1-----Commit2---------------------
-Development-------Merge-F1------------Merge-F2---------------------
-Staging-------------------------------------------Merge-Development
Run Code Online (Sandbox Code Playgroud)

客户在测试环境中查看此版本,但对F1不满意.在此期间,F3代码已完成,客户希望查看.

问:如何使用git进入我们的暂存分支只有F2和F3进行审核的位置,而不是客户现在拒绝的F1?

flx*_*flx 6

您基本上有两种选择:

  1. 恢复F1合并Development,然后将其合并到中Staging
    F1Development和消失Staging

  2. 复位Staging到合并前的提交F1和合并F2F3手工制作。
    您最终将Staging不是的子集Development
    F1只会从消失Staging


Ikk*_*kke 5

git-flow是一个非常流行的工作流程。这基本上是一个非常灵活的模型。这并不意味着您必须完全按照此处的描述进行操作,而是可以从中获得启发。

在这种情况下,一个好的解决方案是创建一个特定于审阅的临时分支,用于显示给客户。

该分支可以直接基于开发,也可以基于合并了特定功能的暂存。

客户端审阅后,您可以在登台分支或特定发行分支中合并接受的功能,然后可以删除临时审阅分支。

这样,您就不必为长期存在的分支重写历史记录。