【问题标题】:Strategy to forking and syncing a git repository分叉和同步 git 存储库的策略
【发布时间】:2017-10-29 18:42:45
【问题描述】:

就我的问题而言,我有一个来自某个项目的 upstream\master 分支的 fork origin\master 分支。

我的origin 项目是一个完全独立的项目,它具有新功能,我永远不想向upstream\master 创建拉取请求。但是,我想从upstream\master 获取更新并保持同步。

在这种情况下,origin\master 是我项目的master 分支,所以它应该是最稳定的分支,我想保护它,并将推送操作限制在它上面。 (restricted branches)

但如果我理解正确,如果我想与upstream\master 同步,我将更改到我项目的本地master 分支,解决冲突后我需要将其推送到origin\master ,这是一个受限制的分支 - 所以我实际上不能这样做。另外,由于同样的限制,我无法创建从本地masterorigin\master 的拉取请求..

更一般地说,直觉上我觉得从upstream\master 直接合并到origin\master 是不对的。

有谁知道这种情况是否有更好的策略?

【问题讨论】:

    标签: git github version-control git-fork


    【解决方案1】:

    由于您本地的master 分支是origin/master 的工作副本,因此您需要将本地masterorigin/master 同步。并且直接将origin/masterupstream/master 同步是没有意义的。

    如果您的origin/master 分支保护不直接推送到远程,您可以创建另一个分支并将其推送到远程,然后创建拉取请求将其合并到master。详情如下:

    #After you update local master to sync with upstream/master
    git checkout -b temp
    git push -u origin temp
    

    在 github 网页中 -> 创建拉取请求 -> 合并 temp 分支到 master -> 最后 origin/master 将在 upstream/master 分支中更新。

    将本地master 分支与origin/master 同步:

    git checkout master
    git pull origin master
    

    【讨论】:

      猜你喜欢
      • 2011-09-01
      • 2021-02-26
      • 1970-01-01
      • 2014-06-20
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-19
      相关资源
      最近更新 更多