github同步fork仓库

507 阅读1分钟

以下例子以 github中 IBM/Drain3 为例

fork目标仓库并将fork完的仓库clone到本地

$ git clone https://github.com/ieven/Drain3.git
Cloning into 'Drain3'...
remote: Enumerating objects: 231, done.
remote: Counting objects: 100% (231/231), done.
remote: Compressing objects: 100% (143/143), done.
remote: Total 565 (delta 132), reused 162 (delta 78), pack-reused 334
Receiving objects: 100% (565/565), 115.33 KiB | 299.00 KiB/s, done.
Resolving deltas: 100% (331/331), done.

$ cd Drain3/

执行命令 git remote -v 查看你的远程仓库的路径

iEven@DESKTOP-OG5S6BE MINGW64 /d/try/Drain3 (master)
$ git remote -v
origin  https://github.com/ieven/Drain3.git (fetch)
origin  https://github.com/ieven/Drain3.git (push)

如果只有上面2行,说明你未设置upstream。如果存在则跳过下面创建upstream步骤。

创建upstream

iEven@DESKTOP-OG5S6BE MINGW64 /d/try/Drain3 (master)
$ git remote add upstreamhttps://github.com/IBM/Drain3.git
iEven@DESKTOP-OG5S6BE MINGW64 /d/try/Drain3 (master)
$ git remote -v
origin  https://github.com/ieven/Drain3.git (fetch)
origin  https://github.com/ieven/Drain3.git (push)
upstream        https://github.com/IBM/Drain3.git (fetch)
upstream        https://github.com/IBM/Drain3.git (push)

所以再次执行命令git remote -v如果出现上图说明成功。

获取upstream的更新

执行命令git fetch upstream抓取 Drain3 原仓库的更新。

iEven@DESKTOP-OG5S6BE MINGW64 /d/try/Drain3 (master)
$ git fetch upstream
自动会同步原仓库更新

合并到本地仓库的master分支

iEven@DESKTOP-OG5S6BE MINGW64 /d/try/Drain3 (master)
$ git checkout master
如果在master分支的可以省略
iEven@DESKTOP-OG5S6BE MINGW64 /d/try/Drain3 (master)
$ git merge upstream/master
会显示合并过程

push到自己的远端仓库

执行命令git push把本地仓库向github仓库(你fork到自己名下的仓库)推送修改。注意git push后面没有其他参数。

iEven@DESKTOP-OG5S6BE MINGW64 /d/try/Drain3 (master)
$ git push
输入你的账号密码进行push

至此你fork的仓库就更新完成了