分叉和同步git存储库的策略

时间:2017-05-29 12:41:11

标签: git github version-control git-fork

在我的问题的上下文中,我有来自某个项目的origin\master分支的fork upstream\master分支。

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

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

但如果我理解正确,如果我想与upstream\master同步,我就会对项目的本地master分支进行更改,并在解决冲突后我需要将它推送到origin\master,这是一个受限制的分支 - 所以我实际上无法做到这一点。此外,由于相同的限制,我无法从本地masterorigin\master创建拉取请求。

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

有谁知道这样的场景是否有更好的策略?

1 个答案:

答案 0 :(得分:1)

由于您的本地master分支是origin/master的工作副本,因此您需要将本地masterorigin/master同步。将origin/master直接与upstream/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