git refs/pull/... vs. 拉/
git refs/pull/... vs. pull/
在各个地方寻找有关如何从 GitHub 合并请求创建本地分支的说明,我看到了两个版本:
git fetch upstream refs/pull/PR_ID/head:NEW_LOCAL_BRANCH
和
git fetch upstream pull/PR_ID/head:NEW_LOCAL_BRANCH
我的问题是,地址中包含“refs
”和不有什么区别?
两者似乎都工作正常。
what's the difference between including "refs" in the address, and not including it?
包含它可以提供直接有效的参考。
不包括它意味着Git必须弄清楚你的意思。它通过尝试东西来做到这一点。它尝试的第一件事就是将 refs/
放在你所说的内容前面——天哪,这行得通。
(要了解 Git 用来弄清楚你的意思的完整过程,请参阅
https://git-scm.com/docs/gitrevisions
查看指定修订下的第三个条目。)
前缀 refs/pull/
是 GitHub 发明的 ref(或引用)命名空间,如果这个词不太强的话,用于他们的 Pull Request 功能。它不是标准的 Git 命名空间,并且 Git 默认情况下会在获取时忽略 中 和 refs/pull/
命名空间中的名称。
如, if you use an abbreviated ref (anywhere, not just in a refspec), Git will attempt to match it up with a full ref if possible. The precise rules for doing this matching depend on where you use such a name. The usual set is outlined in the gitrevisions documentation,但它谈论的是仅存在于您自己的存储库中的本地引用;当你做 git fetch
或 git push
时,一些引用不是本地的,这些规则会稍微弯曲。
在各个地方寻找有关如何从 GitHub 合并请求创建本地分支的说明,我看到了两个版本:
git fetch upstream refs/pull/PR_ID/head:NEW_LOCAL_BRANCH
和
git fetch upstream pull/PR_ID/head:NEW_LOCAL_BRANCH
我的问题是,地址中包含“refs
”和不有什么区别?
两者似乎都工作正常。
what's the difference between including "refs" in the address, and not including it?
包含它可以提供直接有效的参考。
不包括它意味着Git必须弄清楚你的意思。它通过尝试东西来做到这一点。它尝试的第一件事就是将 refs/
放在你所说的内容前面——天哪,这行得通。
(要了解 Git 用来弄清楚你的意思的完整过程,请参阅
https://git-scm.com/docs/gitrevisions
查看指定修订下的第三个条目。)
前缀 refs/pull/
是 GitHub 发明的 ref(或引用)命名空间,如果这个词不太强的话,用于他们的 Pull Request 功能。它不是标准的 Git 命名空间,并且 Git 默认情况下会在获取时忽略 中 和 refs/pull/
命名空间中的名称。
如git fetch
或 git push
时,一些引用不是本地的,这些规则会稍微弯曲。