首页 > 解决方案 > 远程开发者和大师的最佳 git 实践

问题描述

远程,我有两个分支:dev 和 master。

我实现了 3 个功能(功能 A、B、C)并为每个功能设置了本地分支。然后我将这 3 个特性一一合并到 dev 分支中。有一天,我想发布我的更改,所以我使用 squash 合并将 dev 合并到 master。现在远程主机具有功能 A、B 和 C。

然后,我实现了一个 Feature D 并从本地 Feature D 分支合并到 dev。我通过发送拉取请求将开发人员合并到主服务器。但是,我发现功能 A、B、C 的提交也显示在此拉取请求中。这非常令人困惑,但我在这里找到了答案来解释它:Github "Squash and Merge" - 随后的拉取请求显示所有以前 的更改其中提到最佳实践是在合并后删除一个分支。但是,我无法删除 dev 分支。我想知道在我的案例中有两个远程分支的最佳实践是什么?通过忽略拉取请求中的重复提交,我将 dev 与 Feature D 合并到 master 中是否合理?

标签: gitgit-merge

解决方案


你有功能分支,一个dev分支和一个master分支。所以看起来你的工作流程很像Git-Flow——一个成功的 Git 分支模型——除了devvsdevelop不匹配和没有release分支。

Gitflow 和类似的分支模型在实际合并之间传输更改-不是像您的情况那样使用develop壁球合并。Git 将 squash 合并视为一个新的提交——它不会跟踪您合并两行工作(和)的信息。真正的合并正是进行这种跟踪。如果您使用真正的合并,那么 git 可以推断出这一点,并且已经合并并将它们留在拉取请求中。mastermasterdevelopABCD


推荐阅读