我有3个分支。 1)大师 2)dev:-当前的发展 3)发布:-一次我们停止从dev分支进行开发,创建此分支,并且仅在该分支中执行回归错误。 同时,dev分支将为将来的所有开发工作。
现在,我们将发布分支合并到master。然后尝试将master合并到dev。
将master与dev合并时,这就是我在做的事情。 1)git checkout主 2)git拉 3)git checkout开发 4)从dev创建新分支,并将其称为merge-master-to-dev 5)git checkout merge-master-to-dev 6)git merge master
当我这样做时,我看不到任何冲突。所以看起来所有文件/提交都是从master到merge-master-to-dev的merged属性。但是,当我查看代码中的某些文件时,我可以看到缺少一个或多个提交。从来没有见过这种情况发生,所以我知道我在做什么错了吗?
答案 0 :(得分:0)
证明在dev分支中进行了提交B,但是:
- 当我们移至Release时,相同的提交B被回滚,并且
- 当我们将Release合并回DEV时,无论出于何种原因,提交A在合并过程中都消失了
“无论出于何种原因”都是合并,其工作是向目标分支(dev)报告源分支的修改(此处是Release中的提交回滚)
为避免这些合并,您可以考虑使用另一种工作流程:the gitworkflow(一个词),其中在发布后简单地重新创建dev
分支,并合并功能分支。
关键部分:
“
public
”和“next
”(又称“devel
”)分支永远不会合并到master
。它们是“暂时的”或“短暂的”,总是被删除/重新创建。
仅功能分支合并到生命周期分支(public
,next
,master
)。这意味着您可以随时选择在开发生命周期的一个阶段与下一个阶段之间删除功能。