前言

公司要求将共有的远端仓库先fork到本地再进行操作。那么fork到本地的项目如何与原仓库进行同步呢?除了公司的项目,后续如果想对开源项目做贡献,流程仍然相类似。

fork仓库到本地

以github为例,直接在目标仓库页面找到fork功能即可,步骤比较简单,这里略过。之后通过

1
git clone "自己的远端仓库地址"

将项目克隆到本地。

与原仓库进行关联

在本地的项目目录下打开命令行窗口,输入git命令查看关联信息

1
git remote -v

显示信息只有origin,如下:

1
2
origin XXX
origin XXXX

代表还没有关联到原仓库。此时我们可以通过

1
git remote add upstream "原仓库地址"

来设置upstream(上游仓库),实现关联。

设置完毕之后,再次输入

1
git remote -v

可以看到增加了upstream的信息,代表设置成功,可以与上游仓库进行同步了。

1
2
3
4
origin XXX
origin XXXX
upstream XXX
upstream XXXX

拉取原仓库代码

原仓库如果有更新内容,通过指令

1
git pull upstream 分支名

就可以将改动同步到本地仓库。

之后每次在commit之后,都要先拉取上游分支再push到自己的远程仓库。

提交与原仓库的合并请求

如果原仓库有分支保护,不可以直接推上去合并,还需发情合并请求。本地代码push到自己的远端仓库之后,在自己的仓库中可以找到pull request功能,指定审阅者,即可发布合并请求。