美文网首页
github详解一:保持fork库与主库同步

github详解一:保持fork库与主库同步

作者: Aron龙 | 来源:发表于2019-06-16 20:32 被阅读0次

    背景

    工作中需要用到git进行代码管理, 每个项目成员都需要fork出自己库,然后在前端网页上发起Merge Request才能提交到主库上去;这种方式有个问题就是自己fork的库怎么与主库保持同步,github并没有提供一个机制。通过两种方法可以完成。

     第一种, 反向 pull request (页面操作)

    首先,创建pull request。由于我从来没在fork库上提交过代码,所以这里显示没有任何东西用于比较

    创建pull request

    然后,反向设置。注意这里反向设置的时候,通过一个中间版本库过度(两边的版本库相同的话,版本库会被合并处理,导致无法设置),思路类似交换两个变量的值,需要中间变量temp。

    pull request 反向

    值得注意的是,提醒这是一次big comparision,因为我很久没有与主库同步了。

    然后,填写主题,生成pull request。

    最后,自己的fork库自己做主,作为committer,毫无疑问Merge啦。至此,主库之前的修改全部合并到fork库。

    点击 merge pull request  查看pull request记录

    第二种,配置upstream指向fork的原仓库

    1、查看现有的远程仓库:

    $ git remote -v

    origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)

    origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

    2、添加指向原仓库的upstream:

    $ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

    3、查看origin和upstream

    $ git remote -v

    origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)

    origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

    upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)

    upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

    4、直接从原仓库的master分支拉取代码并直接合并代码,其中pull=fetch+merge.

    git pull upstream master

    5、至此,本地库已经和原仓库已经完全同步。但是注意,此时只是你电脑上的本地库和远程的github原仓库同步了,你自己的github仓库还没有同步,此时需要使用“git push”命令把你本地的仓库提交到github中

    参考

    1  配置upstream指向fork的原仓库  

    https://blog.csdn.net/starter_____/article/details/79321962

    2 廖雪峰的git教程

    https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432

    3 可参考GithubHelp的 Configuring a remote for a fork 和 Syncing a fork

    相关文章

      网友评论

          本文标题:github详解一:保持fork库与主库同步

          本文链接:https://www.haomeiwen.com/subject/dutnfctx.html