GitHub上Origin和上游之间有什么区别?


Answers:


803

这应该在GitHub派生的上下文中理解(在本地克隆该派生之前,您可以在GitHub上派生一个GitHub存储库)。

  • upstream通常指您分叉的原始存储库
    (有关更多术语,另请参见downstream”和“ upstream”的定义upstream
  • origin 是您的叉子:您在GitHub上的自己的存储库,是GitHub原始存储库的克隆

在GitHub页面上:

克隆存储库时,它有一个默认的远程调用origin,它指向GitHub上的fork,而不是它从其派生的原始存储库。
要跟踪原始存储库,您需要添加另一个名为upstream

git remote add upstream git://github.com/<aUser>/<aRepo.git>

(使用aUser/aRepo您创建的原始创建者和存储库的参考)

您将使用upstream从原来的回购取(为了保持你的本地副本同步与您想参与该项目)。

git fetch upstream

(默认情况下,git fetch将单独获取origin,这不是这里所需要的)

您将使用origin推拉因为你可以贡献自己的资源库。

git pull
git push

(再次,不带参数,默认使用'origin')

您将upstream通过发出拉取请求来回购回购。

叉子和上游


11
它也有助于知道什么upstream一般为:stackoverflow.com/questions/2739376/...
VonC

2
@MaxRydahlAndersen是真实的,但是我喜欢不使用包装器的Git,所以现在我将保留该约定(上游与原始)。
VonC

22
到目前为止,我已经看到了有关叉子如何工作的最好解释。你得到我的支持。
CodeChimp

9
视觉效果出色。非常简单明了的答案。这正是我想要的。
tayopi

1
@iamrudra如果git remote -v在源和上游显示相同的URL,那么是的,您正在推送到相同的远程存储库。
VonC
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.