git fork 后如何与原仓库同步
有时候我们需要 fork 别人的仓库,对代码进行修改,但是在原仓库进行更新时又不想重新 fork,那样会覆盖掉自己已有的修改,这时候我们就需要对原仓库的更新进行 merge,本文将从 fork 开始讲解如何进行操作
fork 仓库
这里以 https://github.com/catch6/hexo-client.git 这个仓库为例,在 github 中点击 fork 按钮对别人的仓库进行 fork
执行 git clone https://github.com/catch6/hexo-client.git
命令克隆到本地
执行 git remote -v
命令查看远程仓库路径,输出如下:
1 | origin https://github.com/catch6/hexo-client.git (fetch) |
如果只有上面 2 行,说明你未设置 upstream (中文叫:上游代码库)。一般情况下,设置好一次 upstream 后就无需重复设置。
执行命令 git remote add upstream https://github.com/gaoyoubo/hexo-client.git
添加上游,该命令没有任何输出
执行命令 git remote -v
,可以看到以下变化
1 | origin https://github.com/catch6/hexo-client.git (fetch) |
执行命令 git status
检查本地是否有未提交的修改。如果有,则把你本地的有效修改,先从本地仓库推送到你的 github 仓库。最后再执行一次 git status
检查本地已无未提交的修改。
执行命令 git fetch upstream
抓取原仓库的更新
执行命令 git checkout master
切换到 master 分支
执行命令 git merge upstream/master
合并远程的 master 分支
执行命令 git push
把本地仓库向 github 仓库(你 fork 到自己名下的仓库)推送修改