Skip to content

高阶-多远程管理

前置知识:

Fork仓库拉取上游更新

一般我们使用git的时候只会涉及一个默认分支origin,它指向了我们的GitHub仓库。出现多个remote的情况有可能是我们通过fork创建了一个新的仓库,同时我们需要从上游仓库不断地拉取更新到我们的分支,保持同步。我们以这种典型情况为线索,介绍多远程的管理。

假设我们的上游仓库为

https://github.com/yao-class-cpp-studio/wiki

而我们fork出的仓库为

https://github.com/zhangsan/wiki

我们先对fork仓库进行clone:

git clone https://github.com/zhangsan/wiki
cd wiki

这时候的默认remote为origin,origin的地址为https://github.com/zhangsan/wiki,可以通过以下命令确认:

git remote get-url origin

为了让git能够知道我们还有一个远程仓库,我们添加一个叫upstream的remote:

git remote add upstream https://github.com/yao-class-cpp-studio/wiki

然后我们从upstream更新信息:

git fetch upstream

这时候upstream的所有分支都会被放到upstream/*下。假设我们对main提交了一些更改之后,原仓库也更新了,我们通过以下命令把原仓库的更改添加到我们的更改上:

git merge upstream/main

这一操作也可以通过GitHub网页完成。

两仓库保持同步

GitHub的仓库可能访问速度较慢,服务器上面无法连接,我们可以用一些国内的服务来托管我们的代码,比如gitee清华git。不过,我们会想要保持两边的仓库同步。

从一个远程repo1下载branch1的更新到本地branch2

git pull repo1 branch1:branch2

从本地的branch2推送更新到repo2branch3

git push repo2 branch2:branch3

下一项工作是?

没有啦!