origin和upstream在GitHub上有什么区别?
origin
upstream
当执行git branch -a命令时,它显示的一些分支的前缀是origin (remotes/origin/..),而另一些分支的前缀是upstream (remotes/upstream/..)。
git branch -a
remotes/origin/..
remotes/upstream/..
这应该在GitHub fork 的上下文中理解(在本地克隆该fork之前,在GitHub上生成一个GitHub回购)。
从GitHub页面:
当一个回购被克隆时,它有一个默认的远程名为origin,指向你在GitHub上的fork,而不是它被分叉的原始回购。 为了跟踪原始的回购,您需要添加另一个名为upstream的远程
git remote add upstream https://github.com/<aUser>/<aRepo.git>
(使用aUser/aRepo作为原始创建者和存储库的参考,您已经分叉)
aUser/aRepo
注意:2021年9月起, 9418端口上未经身份验证的git协议(git://...)在GitHub上不再支持。
git://...
您将使用upstream到从原始的回购中取回(为了使您的本地副本与您想要贡献的项目保持同步)。
git fetch upstream
(默认情况下,git fetch单独将从origin获取,这不是这里所需要的)
git fetch
您将使用origin到拉和推,因为您可以为自己的存储库做出贡献。
git pull git push
(同样,没有参数,默认使用'origin')
您将通过创建pull request来回馈upstream回购。
克隆一个fork后,你必须显式地添加一个远程上游,用git添加remote "原始的回购你从"这就是上游,你主要从上游获取和合并。任何其他业务,如从本地推送到上游,都应该使用拉请求来完成。
简单地回答。
上游
Upstream通常指的是你已经分叉的原始回购。为了跟踪原始的回购,您需要添加另一个名为upstream的远程。
Upstream
当我们运行这个命令时:
git push -u origin master
-u标志意味着您的本地分支将成为跟踪分支。也就是说,一个跟踪远程分支(upstream分支)的分支,这样将来的git pull将知道从哪个分支合并,git push将被定向到正确的远程分支。
起源
当您使用git clone命令克隆存储库时,它会自动创建一个名为origin的远程连接,指向克隆的存储库。Origin是你在GitHub上自己回购的分叉,克隆的原始GitHub回购。
git clone
Origin
运行此命令:
git push origin branchname