如何保持github上fork的项目与原项目同步
最近在github上贡献源码修改的场合,碰见一个比较棘手的问题:fork开源代码到自己git空间上,在解决新的issue时,需要同步最新的代码到自己fork代码,继续在基础上开发,下面就介绍一下几种常见的方法:
- 删除原有项目,在重新fork。(这个比较耗费时间)
- 在电脑本地同时git clone原项目和fork项目,用git pull更新,然后对比,再git push到github上个人代码库。(也比较繁琐)
- 本地git clone已fork的项目,然后添加远程库为原项目地址。(注意点:要有项目访问权限)
- windows下的 github for desktop客户端.
删除原有项目,在重新fork:
方法如下:
- 点击已fork的repo内(注意是进入自己copy别人的repo页面,而不是原作者的页面)
- 点击settings的options
- 页面拉到最底,在Danger Zone直接delete this repository即可。需要输入repo的名字才能确认删除,这一步实际上就是取消fork了。
使用远程代码库方式:
- 首先先通过 github 的 web 页面 fork 目标的项目, 前提是自己已经设置好了git,并且配置了相应的权限.
- 使用git clone命令在本地克隆自己 fork 的项目: git clone https://github.com/YOUR-USERNAME/project—name
- 需要复制被自己fork的项目的git地址,切换到自己之前克隆的项目的路径下,使用:git remote -v, 就可以看到当前项目的远程仓库配置
- 使用下面的命令: git remote add upstream 原始项目仓库的git地址
- 如果你继续使git remove -v命令查看的话,就会发现这个时候已经和原始的被fork的项目产生了关联。
- 想保持项目同步的话,使用下面的命令:
- git fetch upstream
- git merge upstream/master