GitLab合并请求显示Master中已有旧更改



我正在将我的fork中的更改合并到我们团队在GitLab上的主repo中。

奇怪的是,在我提交的同时,合并显示其他文件发生了更改,这些文件是我没有处理过的。它显示的更改已经存在于我正在合并的上游master中。什么

以下是我的工作流程:(步骤9是我遇到麻烦的地方。(

  1. 从本地主机到上游主机
  2. 从本地主创建要素分支
  3. 签出功能分支
  4. 在我的特性分支上做大量的工作,经常提交和推送我的fork的特性分支
  5. 创建合并请求并将fork的功能分支合并到上游master中
  6. 签出本地主机并从上游主机重新建立基础
  7. 签出本地功能分支,并从本地master重新创建基础(如果需要的话((以引入我的队友可能在其他文件中所做的任何更改(
  8. 在本地做更多的工作,经常提交和推送我的fork特性分支
  9. 创建一个从fork功能分支到上游master的合并请求,显示对其他文件的更改,这些更改已经存在于上游master中

逐行比较这些其他文件的"更改"与上游主文件中的内容,我可以看到这些更改已经存在于上游主文件。

git到底为什么这么做?这真的很令人不安,就像我做错了什么,每次我遇到这种奇怪的情况时,我都会很紧张地默认合并这些更改,因为这些其他文件是我的队友工作的——我不能100%确定我的fork功能是否真的有最新、最棒的代码。

我做错了什么?

谢谢!

在我看来,造成混乱的是fork分支中master的重新定基(也称为步骤7(
通过重新建立基础,您可以放置所有合并,并更改提交哈希,创建某种新的提交。

您可以:

  • git merge而不是步骤7 中的重碱基

  • git rebase --preserve-merges

为了充分理解其含义,我建议阅读该问题的详细答案:git';s";rebase—保留合并";做(为什么?(

最新更新