Git Rebase无限循环

Git Rebase无限循环,git,merge,branch,rebase,merge-request,Git,Merge,Branch,Rebase,Merge Request,场景:我有两个分支:develope和feature\u xyz。我正在通过Gitlab中的合并请求将feature_xyz集成到develope,但我面临一个非快进场景,因此我必须在本地将develope重新设置为feature_xyz,然后再次推送和请求 但是我面临着一个循环重基问题:在本地将重基开发成功能_xyz之后,当我试图将本地功能_xyz分支推到远程时,我收到一个错误,说我的本地分支落后于远程分支。将遥控器重新设置为本地feature\u xyz分支,并将其推入,效果非常好,但如果我

场景:我有两个分支:
develope
feature\u xyz
。我正在通过Gitlab中的合并请求将
feature_xyz
集成到
develope
,但我面临一个非快进场景,因此我必须在本地将
develope
重新设置为
feature_xyz
,然后再次推送和请求

但是我面临着一个循环重基问题:在本地将重基
开发成
功能_xyz
之后,当我试图将本地
功能_xyz
分支推到远程时,我收到一个错误,说我的本地分支落后于远程分支。将遥控器重新设置为本地
feature\u xyz
分支,并将其推入,效果非常好,但如果我尝试将
develope
重新设置为本地分支
feature\u xyz
我将面临相同的错误,如果我尝试推入
feature\u xyz
远程分支

我如何解决它而不必强制或删除远程并再次推动本地


注:合并不是一个选项。

我认为您需要做的不是重新设置基础,而是合并

您应该将
development
合并到沙箱中的
feature_xyz
中,并推送更新的
feature_xyz
分支

git checkout feature_xyz
git merge develop
# test the merged results and commit any required fixes
git push
然后,pull请求实际上是一个需要的快进合并


理想情况下,不应重新设置已推送的分支的基础。Rebase最好保留给仅存在于您的沙箱中的私有分支。

当您说在Rebase发展为feature_xyz之后,我认为不清楚哪个分支是在哪个分支上重新设置的。@eftshift0抱歉输入错误,很少有人可以自由编辑这个问题……为什么合并不是一个选项?重新设置之前被推过的分支的位置是个坏主意,因为根据定义,它需要在之后强制推。拉取请求的唯一方法是将
feature\u xyz
快速合并到
develope
中,即首先将
develope
合并到
feature\u xyz
中,并将其作为拉取请求分支推送。根据快进的定义,没有其他方法。如果这有帮助,您可以将
功能_xyz
分支视为拉动请求的暂存区域:它应该位于您希望
开发的提交处,以指向何时接受拉动请求。在接受拉请求时,分支将以某种方式合并。合并的舞台是
功能_xyz