我知道这里有很多关于这个主题的答案,但它们似乎都具有单分支设置的特点。
所以我用我的Github做了个回购(origin
)然后克隆它(local develop
),并创建了几个我想处理的特征分支,我还将其推送到origin
,并设置本地特征分支以跟踪origin
的特征分支的更改(主本地分支也是develop
,以及主origin
的分支).做了一些本地提交,推送到origin
,为这个分支打开了一个PR,但是它还没有合并,所以origin
的feature分支在Github上的upstream
分支之前和之后都有几个提交。如果我更新origin
的feature分支(web UI中的同步分支),它将创建一个合并提交地狱,产生大量不需要的合并提交。
我知道特性分支应该被重定基,但是在这种情况下如何重定基呢?我只需要从我的本地CLI将origin
特性分支与upstream
(最初已经被分叉的存储库)同步,而不需要将提交推送到origin
。
1条答案
按热度按时间46scxncf1#
TL;DR
通过将
upstream
和origin
(您的分支)作为本地沙箱的两个远程对象,可以很容易地解决这个问题。详细信息
根据您在下面注解中的说明,您希望将
upstream/develop
中的更改引入origin/feature
而不进行合并提交。为此,您需要将origin/feature
重定为upstream/develop
。为此,您需要一个带有两个远程控制器的沙箱:
现在,当您在本地查看日志时,您将同时看到
upstream/develop
和origin/feature
。假设您的本地feature
当前与origin/feature
是最新的,请将其重定为upstream/develop
:现在,您可以将其强制推到您的fork(在确保强制推确实是您想要的之后):
此时,
origin/feature
已经有效地基于upstream/develop
进行了重定基,并且不再被任何提交所阻碍。您从origin/feature
到upstream/develop
的PR也会自动看到新版本。