在不同的地方,寻找如何从GitHub Pull Request创建本地分支的说明,我看到了两个版本:
git fetch upstream refs/pull/PR_ID/head:NEW_LOCAL_BRANCH
和
git fetch upstream pull/PR_ID/head:NEW_LOCAL_BRANCH
我的问题是,包含"refs
";在地址中,不包括吗?
两个似乎都很好。
前缀refs/pull/
是一个引用(或引用)命名空间发明-如果这个词不是太强-由GitHub用于他们的Pull Request功能。它不是一个标准的Git命名空间,Git在默认情况下会忽略refs/pull/
命名空间中的名字。
正如matt提到的,如果你使用了一个缩写的ref(在任何地方,不只是在refspec中),Git会尽可能尝试用一个完整的ref来匹配它。进行这种匹配的精确规则取决于您在何处使用这种名称。通常的版本集在gitrevisions文档中有概述,但它谈论的是只存在于你自己的存储库中的本地参考;当你做git fetch
或git push
时,一些裁判不是本地的,这些规则会被弯曲一点。
包含"refs"在地址里,不包括它吗?
包含它会直接提供一个有效的引用。
不包含它意味着Git必须找出你的意思。它是通过尝试来实现的。它尝试的第一件事就是把refs/
放在你说的话前面——天哪,这很有效。
(对于Git用来确定您的意思的完整过程的介绍,请参阅
https://git-scm.com/docs/gitrevisions
查看指定修订项下的第三项。)