GitHub上的origin和upstream有什么区别?
GitHub上的 origin
和upstream
什么区别?
当一个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
回购。