Git 仓库在 Fork 后同步源仓库

Fork 他人的仓库后,原作者又更新了仓库,此时如何将自己仓库的代码跟原仓库保持一致呢?下面将给出解答。

为 Fork 配置远程仓库

  1. 列出当前为 Fork 配置的远程仓库。
$ git remote -v
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
  1. 指定将与 Fork 同步的新远程上游upstream)仓库。
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
  1. 验证为 Fork 指定的新上游仓库。
$ git remote -v
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

同步 Fork

  1. 从上游仓库获取分支及其各自的提交,传送到本地,对 master 分支的提交将存储在本地分支 upstream/master 中。

    $ git fetch upstream
    remote: Counting objects: 75, done.
    remote: Compressing objects: 100% (53/53), done.
    remote: Total 62 (delta 27), reused 44 (delta 9)
    Unpacking objects: 100% (62/62), done.
    From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
     * [new branch]      master     -> upstream/master
    
  2. 切换到本地的主分支。

$ git checkout master
Switched to branch 'master'
  1. 将来自 upstream/master 的更改合并到本地 master 分支中。这就实现了与上游仓库的同步,而不会丢失本地的更改。
$ git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
 README                    |    9 -------
 README.md                 |    7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md
  1. 最后推送到远程仓库就完成了。

    $ git push origin master
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 当我们 fork 一个开源仓库之后,应该怎样将上游的仓库同步到我们的 fork 上呢?以下文章翻译自 GitHub...
    fuyoufang阅读 1,084评论 0 0
  • 2016.12.4 虽然14年开发第一个项目时就已经接触了git,当时xcode已经开始支持git,在github...
    張小明阅读 415评论 1 0
  • 多种多样的工作流使得在项目中实施Git时变得难以选择。这份教程提供了一个出发点,调查企业团队最常见的Git工作流。...
    JSErik阅读 4,468评论 2 8
  • 本文翻译自 GitHub 的帮助文档 Fork A Repo fork 一个仓库 fork 就是复制一个代码仓库。...
    fuyoufang阅读 12,142评论 0 3
  • 首先确定电脑安装了git 输入git 会产生提示: 如果没有安装,那么就网上搜索下载完成安装. 可以使用命令行安装...
    彗星来的那一夜阅读 851评论 0 0