GitHub 上的 origin
和 upstream
有什么区别?
执行 git branch -a
命令时,它显示的某些分支具有前缀 origin
(remotes/origin/..
),而其他分支具有前缀 upstream
(remotes/upstream/..
)。
这应该在 GitHub forks 的上下文中理解(您在 GitHub 上创建一个 GitHub 存储库,然后在本地克隆该分支)。
上游通常是指您分叉的原始存储库(有关上游术语的更多信息,另请参见“下游”和“上游”的定义)
origin 是你的 fork:你自己在 GitHub 上的 repo,克隆 GitHub 的原始 repo
从 GitHub 页面:
当一个 repo 被克隆时,它有一个名为 origin 的默认远程指向你在 GitHub 上的 fork,而不是它被 fork 的原始 repo。要跟踪原始仓库,您需要添加另一个名为 upstream 的远程
git remote add upstream https://github.com/<aUser>/<aRepo.git>
(带有 aUser/aRepo
的原始创建者和存储库的参考,您已分叉)
注意:since Sept. 2021,GitHub 不再支持端口 9418 上的未经身份验证的 git 协议 (git://...
)。
您将使用 upstream
从原始存储库中获取(以使您的本地副本与您想要贡献的项目保持同步)。
git fetch upstream
(默认情况下,单独的 git fetch
将从 origin
获取,这不是这里需要的)
您将使用 origin
来拉取和推送,因为您可以为自己的存储库做出贡献。
git pull
git push
(同样,没有参数,默认使用'origin')
您将通过创建 pull request 回馈 upstream
存储库。
https://i.stack.imgur.com/cEJjT.png
一言以蔽之。
产地:叉子
上游:分叉的
克隆一个分叉后,您必须显式添加一个远程上游,使用 git add remote “您从分叉的原始仓库”。这成为您的上游,您主要从上游获取和合并。任何其他业务,例如从本地推送到上游,都应该使用拉取请求来完成。
fatal: The current branch branchName has no upstream branch. push the current branch and set the remote as upstream,
like - git push --set-upstream origin branchName
.这里没有与 fork 相关的内容,那么这里的 upstream
是什么?任何人都可以帮忙吗?
不定期副业成功案例分享
upstream
通常是什么:stackoverflow.com/questions/2739376/…