git-github fork 后获取公开正式仓库(原始仓库)新分支(fork项目里同步他人新增分支的方法)

git-github fork 后获取原始仓库新分支

相关基础:关于Git upstream和Git origin

当你从GitHub上 clone 一个 repo 到本地时,除非你已明确声明是这个repo的contributor,否则你是不能向其pull request的,此时,该远程的repo对于本地repo来说,就是upstream。
当你从GitHub上 fork 一个 repo 之后,再 clone forked repo 到本地,你就可以任意向其pull request,此时,远程的 repo 就是 origin。

  1. 如果是 upstream repo,你只可以拉取最新代码(即 git fetch ),从而保证你本地的仓库与源仓库同步
  2. 如果是 origin repo,就是你自己的repo(自己创建的,或者 fork 的项目)你可以做 任何推拉操作(pull and push)
  3. 你可以通过 pull request 向 upstream repo 贡献代码

问题描述

项目维护者初始化正式仓库。和任何使用Git项目一样,第一步是创建在服务器上一个正式仓库,让所有团队成员都可以访问到。 通常这个仓库也会作为项目维护者的公开仓库。

其它所有的开发需要fork正式仓库。 然后,开发者克隆自己fork出来的仓库。

由于正式代码库往前走了,开发的主分支需要和正式仓库做同步。我们使用github 界面的更新,发现只能更新已有分支的代码。但是如果原仓库新加的分支,githup并没有同步过来。

可以抽象描述如下:
在项目的仓库中,有一个项目A,我将它fork到我自己的仓库中作为项目B,
此时,项目B与项目A的分支是相同的。后来,在项目A里,新建了一个分支后,我要怎么把这个分支同步到项目B中呢?

解决方案:fork项目里同步他人新增分支的方法

思路1:删除自己的私仓,重新从主仓fork

思路2:fork项目里同步他人新增分支的方法

把别人的项目fork到自己的仓库,再clone到本地。然后这之后别人新增了分支,我们如何做呢?这里我们假设原仓库新增了testnet分支:

新的上游分支拉入本地仓库, git remote add upstream 添加正式仓库地址

git remote -v
git remote add upstream https://github.com/aptos-labs/aptos-core.git
git remote -v

检索新的上游分支,

git fetch upstream

在本地创建一个叫的testnet新分支,并切换过去
从源仓库将testnet分支的内容,pull到你新建的本地testnet分支上

git checkout -b testnet upstream/testnet

将本地的dev分支 推送到你fork出来的远程仓库

git push origin testnet

此时,你的远程分支也就有了这个新的testnet分支,也就做到了你fork出来的仓库和源仓库分支的同步

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值