GitHub上的原点和上游有什么区别?

originupstreamGitHub上有什么区别?

当执行git branch -a命令时,它显示的一些分支的前缀是origin (remotes/origin/..),而另一些分支的前缀是upstream (remotes/upstream/..)。

205609 次浏览

这应该在GitHub fork 的上下文中理解(在本地克隆该fork之前,在GitHub上生成一个GitHub回购)。

  • upstream通常是指你已经fork的原始回购
    (参见"“#EYZ0”和“upstream”的定义"更多关于upstream术语)
  • origin是你的分叉:你自己在GitHub上的回购,克隆的原始的GitHub回购

从GitHub页面:

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

的远程
git remote add upstream https://github.com/<aUser>/<aRepo.git>

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

注意:2021年9月起, 9418端口上未经身份验证的git协议(git://...)在GitHub上不再支持。

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

git fetch upstream

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

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

git pull
git push

(同样,没有参数,默认使用'origin')

您将通过创建pull request来回馈upstream回购。

fork and upstream

克隆一个fork后,你必须显式地添加一个远程上游,用git添加remote "原始的回购你从"这就是上游,你主要从上游获取和合并。任何其他业务,如从本地推送到上游,都应该使用拉请求来完成。

简单地回答。

  • 起源:
  • 上游:叉状的

上游

Upstream通常指的是你已经分叉的原始回购。为了跟踪原始的回购,您需要添加另一个名为upstream的远程。

当我们运行这个命令时:

git push -u origin master

-u标志意味着您的本地分支将成为跟踪分支。也就是说,一个跟踪远程分支(upstream分支)的分支,这样将来的git pull将知道从哪个分支合并,git push将被定向到正确的远程分支。

起源

当您使用git clone命令克隆存储库时,它会自动创建一个名为origin的远程连接,指向克隆的存储库。Origin是你在GitHub上自己回购的分叉,克隆的原始GitHub回购。

运行此命令:

git push origin branchname