Github fork的项目如何和原项目同步更新

2023-04-26 00:44:02 浏览数 (3)

使用过github的小伙伴都知道fork的功能,但是fork是一个一次性的事情,相当于做了一个快照,如果fork后原项目有更新的话,我们fork后的项目是不会同步更新的,想要保持同步可以按下面的步骤操作

1.首先需要将fork的项目克隆到本地(假设你1分钟前刚刚进行fork)

代码语言:javascript复制
$ git clone <fork后的项目地址>

2.接着,设置origin和upstream,这里以seatunnel项目作为示例

代码语言:javascript复制
$ git remote add origin git@github.com:{your_github_id}/incubator-seatunnel.git
$ git remote add upstream git@github.com:apache/incubator-seatunnel.git
$ git remote -v
origin  git@github.com:{your_github_id}/incubator-seatunnel.git (fetch)
origin  git@github.com:{your_github_id}/incubator-seatunnel.git (push)
upstream        git@github.com:apache/incubator-seatunnel.git (fetch)
upstream        git@github.com:apache/incubator-seatunnel.git (push)

这样设置就完成了。

3.一个月(也可以是一个星期)后,apache/incubator-seatunnel的代码更新了很多pr,但是我fork的项目还是之前fork的时候的样子,我们想将fork的项目和apache/incubator-seatunnel保持一致,比如我想贡献个pr,总不能每次都删掉重新fork吧。

下面的操作可以轻松实现同步(假设我们想同步的是dev分支)

代码语言:javascript复制
$ git fetch upstream
$ git rebase upstream/dev
$ git push origin dev

通过以上操作,就可以将自己的fork分支与原项目同步更新(本地的fork分支)。如果在合并代码的过程中出现冲突,需要手动解决冲突,并提交修改。

最后,将同步更新后的代码推送到自己的远程分支,即可完成代码更新。

代码语言:javascript复制
$ git push origin dev

一个月后,apache/incubator-seatunnel又更新了,重复上面123,就可以继续同步。

0 人点赞