【发布时间】:2021-09-12 21:39:05
【问题描述】:
我刚刚推送了一个更新分支,对我的 GitLab 原始存储库(我已经从 GitLab 上的另一个存储库分叉)进行了一些更改,并创建了一个合并请求(将推送的分支合并到上游存储库,我已经在其中分叉了我的源从)。它向我显示了合并冲突。
问题:
在我从 master 分支分支更新分支的时候,我的 master 已经不是最新的了(上游 master 已经有一些变化)
问题:
我该如何解决这个问题(我希望我的提交在上游 master 的提交之上)?是否可以将我的本地 master 与上游 master 同步,然后将这些额外的提交合并到我的更新分支中,将“更新”的更新分支推送到我的源,最后发出新的拉取请求?
编辑:
那就是目前的情况:
橙色提交(3 和 4)是在我分叉存储库后在上游引入的。所以它们不存在于我的起源中,随后也不存在于我的本地仓库中。因此,当我将更新分支(提交 5 和 6)推送到我的源并创建合并请求时,我会收到错误“合并冲突”,因为这些提交在我推送的更新分支中丢失,并且在合并请求中(至少这就是我的想法,为什么会发生合并冲突 - 或者这是否还有其他原因?)。
所以解决方案是,以某种方式在我的来源中获取那些新引入的提交(3 和 4),然后从那里进入我的本地存储库。然后我可以创建一个包含所有内容的“更新”更新分支,然后我可以将其推送到我的源并创建一个新的合并请求。像这样:
这有可能实现吗?
【问题讨论】:
-
使用 git reflog 找到你想要的提交。恢复并修复它,然后推送到您的远程主分支。阅读使用 git rebase -i 来实现这些东西。很有帮助。
-
git merge REMOTE_URL master && git push或git pull -r REMOTE_URL master && git push -f -
这个必须有一个副本。您所需要的只是获取和合并上游,并推送到您的 pr(如 JBalin 所示)- 所描述的是一个非常正常的场景
-
@AD7six:是的,我认为你是对的,我应该研究得更彻底!我很难学习 git,但它正在慢慢变得更好。
-
@everyone:感谢您的时间和提示,非常感谢!
标签: git gitlab pull-request git-push git-pull