Git master 和开发不同步

use*_*757 7 git tfs azure-devops

我有一个主分支和开发分支。主(服务器)存储库托管在 Azure Devops(内部部署)中。我为我的开发分支中的更改做了两个拉取请求(从功能分支到开发)。

PR1:feature-branch-1 -> 开发

PR2:feature-branch-2 -> 开发

然后我想,我需要将我的开发分支与我的主分支同步,所以我从我的开发分支到我的主分支做了一个拉取请求,接受,提交。

PR3:开发 -> 大师

现在它说我的开发分支“落后 1 次,领先大师 2 次”

将开发与掌握比较显示了我的两个功能拉取请求。比较 master 和 development 显示了我的合并 PR 来同步分支。

在我的过程中我做错了什么,我该如何解决这个问题——让它们同步?

jes*_*ing 9

您所做的过程是正确的,但根据您的选择,发生了以下情况之一。

  • 当您执行 PR 合并时,您选择了“合并”,这将在目标(主)分支上创建一个合并提交。因此,Master 领先于发展 1。
  • 当您执行 PR 合并时,您选择了“Squash”,在这种情况下,它将创建一个新提交,其中包含对目标(主)分支的更改。这个 Master 在开发前有 1 次提交,在开发后有 2 次提交。
  • 当您执行 Fast Forward 时,如果不需要合并,目标和源分支现在将是相同的。并且不会添加合并提交。
  • 当您将 develop 重新定位到 master 时,所有更改都将在 master 分支上重播,然后提交。在这种情况下,您必须强制推动开发。

为了确保 develop 与 master 同步,你有几个选择:

  • 合并 master 回来开发。之后,Develop 将在 master 之前进行 1 次合并提交。
  • Rebase 开发到 master 和 force push 上。Develop 将与 master 相同 + 任何未完成的更改都将在 develop 之上重播。
  • 将开发重置为掌握并强制推送。Develop 将与 master 相同 + 任何未完成的更改都将丢失。
  • 删除/重命名当前的 develop 分支并从 master 创建一个新分支。