为什么我的合并请求显示已在 GitLab 的目标分支中的“添加”?

Tim*_*her 6 git version-control git-merge merge-conflict-resolution gitlab

我在 Git 中有一个临时分支和主分支似乎有点不同步。我正在使用 GitLab,并打开了从 stage 到 main 的合并请求,只是为了看看分支之间有什么区别。差异似乎包括主分支中已经存在的“更改”,对此我有点困惑。例如,“更改”选项卡中显示的更改之一是添加主分支中已有的文件,并且这两个文件是相同的。

然而,我在暂存分支上看到一些提交尚未进入主分支。这很好,我现在想让它们远离主分支。

我想知道如何使分支同步,以便当我打开从阶段到主分支的合并请求时,唯一的更改是实际上不在主分支中的分支。当我打开合并请求时,为什么主文件中已经存在的文件显示为“添加”?

理想情况下,我希望不要触及主分支,而是使用主分支中的内容重建暂存分支,并将不在主分支中的提交保留在阶段上。

小智 4

发生这种情况是因为您的暂存分支中的提交已经合并到您的主分支中。

这是 Gitlab 级别的视觉不准确,但在 git 方面这不是问题。Gitlab 在其 Web 界面中将所有提交显示为更改。Git 足够聪明,可以在暂存中选择新提交,并在上次合并提交后将它们添加到 main 上,这样您就可以安全地合并。

您可以通过将主分支合并到暂存分支上来修复视觉不准确的问题:

git fetch origin main:main
git checkout staging
git merge main
# fix conflicts, if any
git push
Run Code Online (Sandbox Code Playgroud)