为什么我的上游 PR 检出不包含最新提交?

Why does my checkout of an upstream PR not contain the latest commit?

我可以使用以下 cmd

通过 "c12b34"(几天前制作)的提交看到此 PR
git ls-remote upstream
c12b34afadc4df762eaa482984170974c6f6b1c0        refs/pull/35/head

然后我检查 PR。但是log中不包含上面的commit;它只显示几个月前的提交。

git checkout -b upstream/35

我错过了什么?谢谢。

当您使用 git checkout -b 时,您会根据您 已经 的一些提交创建一个本地名称——分支名称。您可能没有所需的提交。您将需要 运行 git fetch 来获得这些提交。

然而,这些提交是通过查询名称中的名称-space 找到的,您的 Git 通常 不会 带来。您将需要 运行,例如:

git fetch upstream refs/pull/35/head:refs/heads/pr/35
例如,

(a) 获取提交,然后 (b) 创建一个名为 pr/35 的本地分支。此时不需要单独的 git checkout -b,因为 fetch 操作创建了 refs/heads/pr/35,它是您存储库中名为 pr/35 的分支。

(记得在完成后删除您的名字 pr/35。)