AlickGuo +

如何在 github fork 分支同步源分支修订

在 github 上 fork 分支之后,需要周期性地对 fork 分支进行源分支同步,以确保源分支的 Bug fix 或 new feature 在 fork 分支上得更新,具体操作分为两个步骤:

  1. 为 fork 分支配置同步源分支。
  2. 在 fork 分支上进行源分支修订同步。

配置源分支

  1. 打开终端工具(对于 MAC 用户)或命令行窗口(Windows/Linux用户)
  2. 查看本地库配置
  1. $git remote -v
  2. origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
  3. origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
  1. 为本地 fork 分支库配置源分支路径为 upsteam .
  1. $git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
  1. 查看本地库配置,确认步骤3已正确配置
  1. $git remote -v
  2. origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
  3. origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
  4. upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
  5. upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

同步源分支修订

  1. 打开终端工具(对于 MAC 用户)或命令行窗口(Windows/Linux用户)
  2. 进入 fork 分支的本地目录
  3. 从 upstream/master 同步更新到本地 master 分支
  1. $git fetch upstream
  2. remote: Counting objects: 75, done.
  3. remote: Compressing objects: 100% (53/53), done.
  4. remote: Total 62 (delta 27), reused 44 (delta 9)
  5. Unpacking objects: 100% (62/62), done.
  6. From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
  7. * [new branch] master -> upstream/master

4.checkout 本地 master 分支

  1. $git checkout master
  2. Switched to branch 'master'

5.合并 upstream/master 分支更新到本地的 master 分支

  1. $git merge upstream/master
  2. Updating a422352..5fdff0f
  3. Fast-forward
  4. README | 9 -------
  5. README.md | 7 ++++++
  6. 2 files changed, 7 insertions(+), 9 deletions(-)
  7. delete mode 100644 README
  8. create mode 100644 README.md

如果本地分支原本没有任何修订,git 会fast-forward

  1. $git merge upstream/master
  2. Updating 34e91da..16c56ad
  3. Fast-forward
  4. README.md | 5 +++--
  5. 1 file changed, 3 insertions(+), 2 deletions(-)

原文地址:

Blog

Opinion

Project