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

GitHub上的 originupstream什么区别?

当一个git branch -a命令完成时,一些分支有一个前缀( remotes/origin/.. ),而其他的则有一个前缀( remotes/upstream/.. )。

这应该在GitHub分叉 (你在GitHub中分叉GitHub回购之前,在本地克隆分叉)的上下文中理解,

  • upstream通常是指您已经分叉的原始回购
    (另见upstream术语“ downstream ”和“ upstream ”的定义 )
  • origin是你的叉子:你自己在GitHub上的回购,克隆GitHub的原始回购

从GitHub页面:

当一个repo被克隆的时候,它有一个默认的远程调用origin ,它指向你在GitHub上的fork,而不是它所分配的原始的repo。
要跟踪原始的回购,您需要添加另一个名为upstream远程

 git remote add upstream git://github.com/user/repo.git 

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

 git fetch upstream 

(单独的git fetch会从默认的origin获取,这不是在这里需要的)

您将使用origin拉和推,因为您可以贡献自己的回购。

 git pull gut push 

(再次,没有参数,默认使用“origin”)

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

叉和上游