Fork 是 Github 上的常用操作之一,不同于 Star,Fork 会将进行 Fork 操作那一刻的仓库代码完全复制到自己的仓库下。Fork 之后,我们可能会为原仓库添加一个 Feature,之后发起 Pull Request。
往往在 Fork 之后,原仓库的作者也会进行代码更新,与我们自身的更新在 Git Commit 树中会分叉,如下图所示:
在某些这样的时候,我们发起的 Pull Request 是有冲突的。就算没有冲突,及时在发送 Pull Request 之前同步原仓库的代码也是十分必要的。本文将会介绍同步 Fork 原仓库代码的方法。
Step 1. 添加 upstream
我们首先要在 Git 中配置指向上游仓库(即 Fork 前的原本仓库)的远程仓库。
查看当前的 remote 情况:
1$ git remote -v # 列出当前的 remote 情况
2> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
3> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
添加上游仓库的地址:
1$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
验证:
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)
Step 2. 同步上游仓库代码
我们可以直接使用 git pull
命令同步 upstream
的指定分支即可。
为了更加保险,可使用 git pull --rebase
在本地解决可能发生的冲突。
Step 3. 上传到自己的仓库,发起PR
同步代码并解决冲突完成之后,可以将代码上传到自己的仓库中,并发起 Pull Request。
参考链接
版权声明:本文遵循 CC BY-SA 4.0 版权协议,转载请附上原文出处链接和本声明。
Copyright statement: This article follows the CC BY-SA 4.0 copyright agreement. For reprinting, please attach the original source link and this statement.