git 什么时候检测到拉取请求的更新?

When does git detect updates to pull request?

环境:

  1. Atlassian Stash v3.11.2 (https://hub.docker.com/r/atlassian/stash/)
  2. Git 客户端 (1.9.1)
  3. 还有一个git新手(我)

在将更改推送到 b运行ch b1 上的文件 test.txt 时,我看到创建拉取请求的提示,我这样做了 (id 1)。然后,在另一个虚拟机上:

git fetch origin +refs/pull-requests/1/merge:my_pr_branch_01
git checkout my_pr_branch_01

文件 test.txt 显示了我的更改,没问题。

在较早的 VM 上,对 test.txt 进行了更多更改(并推送到 origin b1)。拉取请求现在有 2 个提交。这就是混乱出现的地方:

当我在 VM2 上 运行 时:

git checkout master
git fetch origin +refs/pull-requests/1/merge:my_pr_branch_01
git checkout my_pr_branch_01

预计也会看到第二次提交的变化。没找到。

然后运行:

git fetch origin +refs/pull-requests/1/merge:my_pr_branch_02
git checkout my_pr_branch_02

第二次提交的更改仍然没有出现在 test.txt 中。

然后点击隐藏 UI,并查看拉取请求的差异选项卡。第二次提交的变化确实出现了。然后在 VM2 上:

git fetch origin +refs/pull-requests/1/merge:my_pr_branch_03
git checkout my_pr_branch_03

现在我确实看到了 test.txt 与第二次提交的变化。

下面是问题:

  1. 它什么时候检测到更新的提交(除了访问拉取请求 URL)?
  2. 如何让 git 知道拉取请求的更新提交?
  3. 如何让它(肯定地)忽略拉取请求的更新提交?

我的最终目的是在 Jenkins 上使用 Stash Pull Request 构建器插件来处理许多作业(通过构建流程启动)。为此,我试图想出一种让所有作业都使用相同代码的可靠方法。

Atlassian Stash 开发人员的 post 确认 refs/pull-requests/*/fromrefs/pull-requests/*/merge 得到更新 "lazily" 以提供更好的缩放。触发更新的事件之一是通过网络访问拉取请求 UI。因此,上述行为与实现一致。