在我的问题的上下文中,我有来自某个项目的origin\master
分支的fork upstream\master
分支。
我的origin
项目是一个完全独立的项目,它具有新功能,我绝不想为upstream\master
创建拉取请求。但是,我希望从upstream\master
获取更新并保持同步。
在这种情况下,origin\master
是我项目的master
分支,因此它应该是最稳定的分支,我想保护它,并限制推送操作它。 (restricted branches)
但如果我理解正确,如果我想与upstream\master
同步,我就会对项目的本地master
分支进行更改,并在解决冲突后我需要将它推送到origin\master
,这是一个受限制的分支 - 所以我实际上无法做到这一点。此外,由于相同的限制,我无法从本地master
到origin\master
创建拉取请求。
更一般地说,从直觉上看,我觉得从upstream\master
直接合并到origin\master
并不合适。
有谁知道这样的场景是否有更好的策略?
答案 0 :(得分:1)
由于您的本地master
分支是origin/master
的工作副本,因此您需要将本地master
与origin/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