GitHub上的origin和upstream有什么区别?

What is the difference between origin and upstream on GitHub?

Github上的originupstream有什么区别?

当执行git branch -a命令时,某些分支的前缀为origin(remotes/origin/..),而其他分支的前缀为upstream(remotes/upstream/..)。


这应该在Github forks的上下文中理解(在本地克隆该fork之前,在Github上分叉Github repo)。

  • upstream一般是指你已经分叉的原始回购。(关于upstream术语的更多信息,请参见"downstream和"upstream的定义")。
  • origin是你的叉子:你自己在github上的回购,是github原始回购的克隆。

从Github页面:

When a repo is cloned, it has a default remote called origin that points to your fork on GitHub, not the original repo it was forked from.
To keep track of the original repo, you need to add another remote named upstream

1
git remote add upstream git://github.com//

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

您将使用upstream从原始回购中获取(以便使您的本地副本与您要贡献的项目保持同步)。

1
git fetch upstream

(默认情况下,仅凭git fetch一项就可以从origin取得,这不是这里需要的)

您将使用origin进行拉和推,因为您可以为自己的存储库做出贡献。

1
2
git pull
git push

(同样,在没有参数的情况下,默认使用"origin")。

您将通过发出请求,为upstream回购作出贡献。

fork and upstream