忘记在 git 推之前 git 拉

forgot to git pull before git push

我刚刚推送了一个更新分支,其中对我的 GitLab 原始仓库(我从 GitLab 上的另一个仓库 fork 了)进行了一些更改,并创建了一个合并请求(将推送的分支合并到上游仓库,我在那里 fork我的起源)。它向我显示了合并冲突。

问题:
当我从 master 分支中分离出 update 分支时,我的 master 不再是最新的(上游 master 已经有一些变化)

问题:
我该如何解决这个问题(我希望我的提交位于上游 master 的那些提交之上)?是否可以将我的本地 master 与上游 master 同步,然后将这些额外的提交合并到我的更新分支中,将“更新的”更新分支推送到我的源并最终发出新的拉取请求?

编辑:

也就是现在的情况:

橙色提交(3 和 4)是在我分叉回购后在上游引入的。因此,它们不存在于我的来源中,因此也不存在于我的本地仓库中。因此,当我将更新分支(提交 5 和 6)推送到我的源并创建合并请求时,我收到错误“合并冲突”,因为这些提交在我推送的更新分支中丢失,并且在合并请求中丢失(至少这就是我的想法,为什么会发生合并冲突 - 或者这是否还有其他原因?)。

所以解决方案是,以某种方式在我的源中获取那些新引入的提交(3 和 4),然后从那里进入我的本地存储库。然后我可以创建一个包含所有内容的“更新的”更新分支,然后我可以将其推送到我的源并创建一个新的合并请求。像这样:

这可以实现吗?

您基本上想要重新设置您的分支:

git checkout update

# Fetch commits from upstream
git fetch upstream

# Replay the commits of your update branch over master branch of upstream
git rebase upstream/master

注意:这不会更新您的本地 master 但您不一定需要。