GitHub Fork 的代码更新方法

用户可以很方便的从别的仓库中复制一份代码(Fork)到自己的名下。但是有一个不足是 GitHub 并不提供自动更新功能,那么此时就需要我们自己手动更新这个 Fork 仓库代码。

具体步骤

** 1、安装 GitHub客户端 或者 Git。**

** 2、clone 需要更新的 Fork 分支到本地 **

1
git clone [email protected]:yourname/repos.git <yourfolder>

** 3、将源分支添加到该仓库的远程分支中 **

1
git remote add upstream [email protected]:author/repos.git

此时可以使用 git remote -v 查看远程分支列表,结果如下:

1
2
3
4
upstream [email protected]:author/repos.git (fetch)
upstream [email protected]:author/repos.git (push)
origin  [email protected]:yourname/repos.git (fetch)
origin  [email protected]:yourname/repos.git (push)

** 4、fetch 源仓库代码的最新版本到本地 **

1
git fetch upstream   #这里的`upstream`是上面从源分支添加到远程分支的分支名

这里是从上游仓库 fetch 分支和提交点,提交给本地 master,并会被存储在一个本地分支 upstream/master

** 5、合并两个版本的代码 **

1
git merge upstream/master

这里把 upstream/master 分支合并到本地 master 上,这样就完成了同步,并且不会丢掉本地修改的内容。

** 6、更新到 GitHub 的 fork 上 **

1
git push origin master

只用 GitHub,不用命令行操作步骤

这里看到源项目已经领先我 Fork 的项目 84 个 commit 了,所以首先点击图中的 Pull request

GitHub Fork 的代码更新方法

图 1

由于这里没有修改,所以这里是空的,下面点击图中的 switching to base

GitHub Fork 的代码更新方法

图 2

下面点击 Create Pull request

GitHub Fork 的代码更新方法

图 3

这里给这个 pull request 取一个名字:

GitHub Fork 的代码更新方法

图 4

然后点击 Merge,最后 confirm 即可:

GitHub Fork 的代码更新方法

图 5

参考:gitlab 或 github 下 fork 后如何同步源的新更新内容?