我正在将我的fork中的更改合并到我们团队在GitLab上的主repo中。
奇怪的是,在我提交的同时,合并显示其他文件发生了更改,这些文件是我没有处理过的。它显示的更改已经存在于我正在合并的上游master中。什么
以下是我的工作流程:(步骤9是我遇到麻烦的地方。(
- 从本地主机到上游主机
- 从本地主创建要素分支
- 签出功能分支
- 在我的特性分支上做大量的工作,经常提交和推送我的fork的特性分支
- 创建合并请求并将fork的功能分支合并到上游master中
- 签出本地主机并从上游主机重新建立基础
- 签出本地功能分支,并从本地master重新创建基础(如果需要的话((以引入我的队友可能在其他文件中所做的任何更改(
- 在本地做更多的工作,经常提交和推送我的fork特性分支
- 创建一个从fork功能分支到上游master的合并请求,显示对其他文件的更改,这些更改已经存在于上游master中
逐行比较这些其他文件的"更改"与上游主文件中的内容,我可以看到这些更改已经存在于上游主文件。
git到底为什么这么做?这真的很令人不安,就像我做错了什么,每次我遇到这种奇怪的情况时,我都会很紧张地默认合并这些更改,因为这些其他文件是我的队友工作的——我不能100%确定我的fork功能是否真的有最新、最棒的代码。
我做错了什么?
谢谢!
在我看来,造成混乱的是fork分支中master的重新定基(也称为步骤7(
通过重新建立基础,您可以放置所有合并,并更改提交哈希,创建某种新的提交。
您可以:
-
git merge
而不是步骤7 中的重碱基 git rebase --preserve-merges
为了充分理解其含义,我建议阅读该问题的详细答案:git';s";rebase—保留合并";做(为什么?(