[Q&A] 什么是 Upstream-Repo?

upstream 的译为“上游”。当你 git clone 一个别人的 Repository 到本地,由于你不是该仓库的成员,因此你是无法向该仓库推送代码的,只能通过 Pull Request (源自) 的方式。 此时,相较于本地仓库,别人的这个 Repository 称为 upstream 。可以将这个别人的仓库称为 Upstream-Repo

[Q&A] 什么是 Origin-Repo?

我们 fork 这个 Repository 到自己 GitHub 账号下,然后通过 git clone 将这个 Fork 出来的仓库clone到本地电脑上 , git 会默认创建一个 origin 的别名指向 Fork 出来的仓库。可以将这个 Fork 出来的仓库称为 Origin-Repo

Upstream-RepoOrigin-Repo,大致关系如图所示(源自),其中 Upstream-Repo 对应图中的 Original,Origin-Repo 对应图中 Fork。在这里插入图片描述

如何跟踪 Upstream-Repo 仓库的变更?

git remote add upstream <upstream-repo-address>     添加别名 upstream 指向 Upstream-Repo
git fetch upstream                                  获取 Upstream-Repo 的变更
git merge upstream/main                             可以通过 merge 或 rebase 方式合并到本地分支中

如何把 项目 同时托管到 github,gitlab,gitee

由于一个本地仓库是可以关联多个远程仓库的,因此,可以设置多个「别名」分别指向不同的远程仓库(比如一个 GitHub、一个 GitLab、一个 Gitee),然后通过别名的方式方便、快速地拉取某个远程仓库的代码或者将代码推送至某个远程仓库。

git remote add github  git@github.com:toFrankie/repo-demo.git    添加 github 别名
git remote add gitlab  git@gitlab.com:toFrankie/repo-demo.git    添加 gitlab 别名
git remote add gitee   git@gitee.com:toFrankie/repo-demo.git     添加 gitee 别名

参考

开发者社区> 越前君> 细读 Git | 让你弄懂 origin、HEAD、FETCH_HEAD 相关内容

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐