如何将 Github Fork 项目与上游项目同步更新

  • 在 Github 上 Fork 了项目后,如何进行同步更新呢;

  • 使用的场景还是挺多的,学习别人的项目, Fork 到自己的账户下进行更改、团队协作的项目 Fork 。

  • 将 Fork 的项目与上游仓库进行同步有两种做法

  1. Github 仓库页面进行 New pull request
  2. 本地使用命令进行同步

  • 这里主要讲第二种,第一种不做展示,正好 Fork 了其他作者的项目,所以做下记录

  • 前提,你的项目已经 clone 到本地了,要不然你怎么使用命令呢;

开始动手

  • 使用 git remote -v 查看当前的远程仓库地址,输出如下:
1
2
origin  https://github.com/paynezhuang/eladmin.git (fetch)
origin https://github.com/paynezhuang/eladmin.git (push)
  • 可以看到从自己帐号 clone 下来的仓库,远程仓库地址是与自己的远程仓库绑定的

  • 接下来运行进行添加别名 upstream(上游) 的地址,也就是指向我之前 Fork 的原仓库地址

1
git remote add upstream https://github.com/elunez/eladmin.git
  • 再次使用 git remote -v 输出如下:
1
2
3
4
origin  https://github.com/paynezhuang/eladmin.git (fetch)
origin https://github.com/paynezhuang/eladmin.git (push)
upstream https://github.com/elunez/eladmin.git (fetch)
upstream https://github.com/elunez/eladmin.git (push)
  • 可以看到了我们项目以及 upstream 上游项目

  • 之后运行下面几条命令,就可以保持本地仓库和上游仓库同步了

1
2
3
4
5
6
# 将上游仓库的 master 分支下载到本地当前 branch 中
git fetch upstream
# 进行合并
git merge upstream/master
# 进行推送提交
git push origin master