git - 择优选择后的 Azure DevOps Pull 请求

标签 git azure-devops pull-request git-cherry-pick

我正在使用 Azure DevOps,遇到了 git 和 pull 请求的情况,我无法理解并寻求帮助。

这是场景:

  • 我有两个分支:dev、stage。
  • dev 有大量提交尚未 merge 到阶段中。
  • file.txt 存在于两个分支中; dev 中的三个提交 (123,124,125) 已经改变了这个文件,因此它的内容与阶段不同。

我从 dev 中挑选提交 123,将阶段的目标分支放入主题分支。然后将主题分支请求 pull 入阶段。

然后,我对 dev 的提交 124 和 125 重复此过程。

如果我将 dev 分支中的 file.txt 与 stage 分支中的 file.txt 进行比较,它们现在的内容是相同的。

如果我在 Azure DevOps 中在 pull 请求的"file"选项卡上提交从开发到阶段的 pull 请求,它会向我显示对 file.txt 的建议更改,就好像开发提交从未被挑选到阶段版本中一样文件.txt。

我意识到,当我挑选时,会在 stage 内创建一个新的提交,因此 stage 分支不会意识到来自 dev 的提交 123,124,125 已被应用 - 但 Azure DevOps 文件 View 不应该知道 file.txt 的内容是一样的吗?

最佳答案

发生这种情况是因为您看到的源分支和目标分支之间不存在差异。差异是在源分支和源分支和目标分支的分歧点之间......所以,您可能在分支分歧后的后续版本中修改了目标分支中的文件。没关系,azure devops 中 PR 的差异(好吧,至少这是它在 github 和 gitlab 中的正常工作方式)并不关心它们。

提示:将其视为未完成的 diff git diff target source 而是 git diff target...source (带有 3 个点)...这样做是因为如果你使用默认的 diff 来做到这一点,那么 PR 中工作的 diff 将是一个移动目标。随着新的修订被引入目标分支,它总是会发生变化......并且您会看到与源分支中执行的工作无关的事情(这将使代码审查 hell ) )并且如果您尝试 merge ,这绝对不是 git 会尝试进入目标分支的内容( merge 过程涉及比较两个分支自分歧以来的变化情况,因此没有必要检查差异在 Twig 的两个尖端之间)。

关于git - 择优选择后的 Azure DevOps Pull 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68584845/

相关文章:

git - 如何列出使用 git/git flow 提交的文件

azure - 如何从 Azure Web 应用服务部署中心获取信息

请求请求后的 git rebase

Git 分支策略 - pull 请求创建 merge 提交,使分支看起来不同,而文件相同

github - 如何清空 Github 存储库并将代码作为拉取请求发送?

git - 如何在 Visual Studio Code 中查看 Git 历史记录?

ios - git merge Localized.strings 文件?

Git 不跟踪文件

azure - 从 Python SDK 启动容器实例 - 权限问题

azure-devops - 图片未出现在 Jacoco 覆盖率报告中(既不在 Index.html 中也不在 VSTS 中)