【问题标题】:What is the difference between origin and upstream on GitHub?GitHub 上的 origin 和 upstream 有什么区别?
【发布时间】:2012-03-04 16:17:06
【问题描述】:

GitHub 上的originupstream 有什么区别?

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

【问题讨论】:

标签: git github git-branch


【解决方案1】:

这应该在 GitHub forks 的上下文中理解(您在 GitHub 上创建一个 GitHub 存储库,然后在本地克隆该分支)。

  • upstream 一般是指你 fork 的原始 repo
    (有关upstream 术语的更多信息,另请参阅“Definition of “downstream” and “upstream”)
  • origin 是你的 fork:你自己在 GitHub 上的 repo,克隆 GitHub 的原始 repo

来自 GitHub 页面:

当一个 repo 被克隆时,它有一个名为 origin 的默认远程指向你在 GitHub 上的 fork,而不是它从 fork 的原始 repo。
要跟踪原始 repo,您​​需要添加另一个名为 upstream 的遥控器

git remote add upstream git://github.com/<aUser>/<aRepo.git>

(带有aUser/aRepo 原始创建者和存储库的参考,您已分叉)

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

git fetch upstream

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

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

git pull
git push

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

您将通过 pull request 回馈upstream 存储库。

【讨论】:

  • 这也有助于了解upstream 通常是什么:stackoverflow.com/questions/2739376/…
  • @MaxRydahlAndersen 是的,但我喜欢使用不带包装器的 Git,所以我现在将保留该约定(上游与原始)。
  • 迄今为止我所见过的关于分叉如何工作的最佳解释。你得到我的支持。
  • 视觉效果很棒。非常直接且易于理解的答案。这正是我想要的。
  • @iamrudra 如果 git remote -v 为源站和上游显示相同的 url,那么是的,您正在推送到同一个远程仓库。
【解决方案2】:

简而言之。

  • 起源:分叉
  • 上游:分叉

【讨论】:

    【解决方案3】:

    克隆一个分叉后,您必须显式添加一个远程上游,使用 git add remote “您分叉的原始仓库”。这成为您的上游,您主要从上游获取和合并。任何其他业务,例如从本地推送到上游,都应该使用拉取请求来完成。

    【讨论】:

    • 不能从本地做拉取请求,本地首先必须上传到存储库/远程..
    • N/B - 我在上面的评论中提到的拉取请求意味着从你的 git 上的分叉版本向原始 repo 做出贡献(在这种情况下是你本地的上游)
    • 我在 github 上创建了一个 repo,将其克隆到我的本地,然后创建了一个分支(本地),对代码进行了一些更改,当我尝试从新创建的分支推送到远程时,它说fatal: The current branch branchName has no upstream branch. push the current branch and set the remote as upstream, 喜欢 - git push --set-upstream origin branchName。这里没有与fork相关的东西,那么这里的upstream是什么?有人可以帮忙吗?
    • 你试过了吗-“git push -u origin ”?
    • @Md.HabiburRahman 如果您创建了一个新的本地分支,请搜索将推送您新创建的分支的 git 语法,同时创建一个新的远程分支。还要回答您对上游的评论,在这种情况下没有上游,因为您没有分叉回购。
    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 2023-03-04
    • 2011-12-06
    • 2011-10-26
    • 2017-05-11
    • 2015-07-20
    • 2011-10-09
    • 2017-04-26
    相关资源
    最近更新 更多