更新fork仓库的代码
比如从alibaba/flutter_boost
fork了项目到uquabc/flutter_boost
1. 更新已有分支
比如两个仓库都有master
分支,现在想把这个分支代码更新到最新,可以参考github上fork了别人的项目后,再同步更新别人的提交
2. 更新uquabc/flutter_boost
上不存在的分支
比如alibaba/flutter_boost
上新出的v1.12.13-hotfixes
分支,在uquabc/flutter_boost
上并不存在,就没法用第一种方式了。
这篇文章有详细解释如何保持 GitHub Fork 项目同步
我的做法稍微有点不一样,这里记录下:
2.1 添加远程项目地址
首先查看已有的远程仓库
$ git remote -v
origin git@github.com:uquabc/flutter_boost.git (fetch)
origin git@github.com:uquabc/flutter_boost.git (push)
添加alibaba/flutter_boost
到远程仓库,并命名为upstream
$ git remote add upstream https://github.com/alibaba/flutter_boost.git
// 再次查看
$ git remote -v
origin git@github.com:uquabc/flutter_boost.git (fetch)
origin git@github.com:uquabc/flutter_boost.git (push)
upstream https://github.com/alibaba/flutter_boost.git (fetch)
upstream https://github.com/alibaba/flutter_boost.git (push)
2.2 更新代码
首先从upstream
获得更新
$ git fetch upstream
查看所有分支
$ git branch -a
//结果:
...
remotes/upstream/v1.12.13-hotfixes //这是我们想要的分支
...
切换到upstream/v1.12.13-hotfixes
$ git checkout upstream/v1.12.13-hotfixes
然后在这个分支基础上新建一个本地分支
$ git branch v1.12.13-hotfixes
提交本地分支
$ git push --set-upstream origin v1.12.13-hotfixes
这样就把新分支提交到本地项目里了
题外话
如果想移除upstream
仓库,使用如下命令
$ git remote rm upstream