在 github 上 fork 了一个项目之后,如何使自己 fork 的项目和原先作者的项目分支保持同步呢,下面我使用 hutool 的项目做示范,手摸手示范如何使 fork 的项目与原项目分支保持同步。

1. 查看远程的版本库地址

  1. $ git remote -v
  2. origin https://github.com/xkcoding/hutool.git (fetch)
  3. origin https://github.com/xkcoding/hutool.git (push)

2. 添加原项目 git 地址到本地版本库

  1. $ git remote add upstream https://github.com/looly/hutool.git

3. 检查版本库是否添加成功

  1. $ git remote -v
  2. origin https://github.com/xkcoding/hutool.git (fetch)
  3. origin https://github.com/xkcoding/hutool.git (push)
  4. upstream https://github.com/looly/hutool.git (fetch)
  5. upstream https://github.com/looly/hutool.git (push)

4. 原项目更新内容同步到本地

  1. $ git fetch upstream
  2. remote: Counting objects: 360, done.
  3. remote: Compressing objects: 100% (148/148), done.
  4. remote: Total 360 (delta 158), reused 339 (delta 137), pack-reused 0
  5. Receiving objects: 100% (360/360), 87.95 KiB | 45.00 KiB/s, done.
  6. Resolving deltas: 100% (158/158), completed with 66 local objects.
  7. From https://github.com/looly/hutool
  8. * [new branch] v4-dev -> upstream/v4-dev
  9. * [new branch] v4-master -> upstream/v4-master

5. 查看本地分支

  1. $git branch -a
  2. * v4-master
  3. remotes/origin/HEAD -> origin/v4-master
  4. remotes/origin/v4-dev
  5. remotes/origin/v4-master
  6. remotes/upstream/v4-dev
  7. remotes/upstream/v4-master

6. 同步更新内容到本地对应分支

  1. git merge upstream/v4-master

7. 提交更新内容到 fork 地址

  1. git push