[Git] git fork仓库与原仓库的同步

场景

在团队开发时,成员将repo fork到自己GitHub下进行开发,然后在个人GitHub repo中pull request将变动合并到团队repo中。当有成员改动团队repo时,我们需要将团队远程repo的变动同步到自己repo中。

解决方案

解决上述问题有两个方案:

方案一

在GitHub网页上通过反向pull request将变动pull到自己远程repo(常规下我们是将自己远程repo pull request到团队远程repo,原理相同,我们pull什么就将什么当做base),通过compare across forks来调节同步地repo分支。

If you need to, you can also compare across forks

方案二

另一个方法是,我们通过本地repo直接同步团队的变动。

背后的原理是:在本地repo添加原始的仓库作为新的上游仓库,取名upstream(以区别forked仓库的origin),通过git pull --rebase upstream/master将原始仓库master分支内容同步到本地仓库,i.e.,本地HEAD指针将会向前挪动,然后再通过git push origin master将本地仓库的内容推送到forked的远程repo,即完成fork库与原始库的同步。
原始上游仓库origin:

$ git remote -v
origin  git@github.com:xxx/yyy.git (fetch)
origin  git@github.com:xxx/yyy.git (push)

添加上游仓库:

$ git remote -v
origin  git@github.com:xxx/forked_repo.git (fetch)
origin  git@github.com:xxx/forked_repo.git (push)
upstream        git@github.com:yyy/repo.git (fetch)
upstream        git@github.com:yyy/repo.git (push)

同步上游repo仓库

$ git pull upstream/master

参考资料:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值