我有一个 Master 分支和一个 Work 分支。我在 Work 分支上工作,团队将更新 Master 分支。
工作分支:1000 <--- 1001 <--- 1002
主分支:1000
现在将 Work 分支合并到 Master 分支,并且它正在工作。
主分支:1000 <--- 1001 <--- 1002 <--- 1003 <--- 1004
Work 分支现在想要将 Master 分支合并到 Work 分支。假设 1003 和 1004 提交对文件 a.cpp 有一些更改
我假设 Work 分支中的 a.cpp 将使用来自 Master 分支的提交 1004 中的最新版本的 a.cpp 自动更新。
但 git 显示没有!它要求解决 a.cpp 的冲突。
两者都添加:a.cpp
但是我比较了 Work 分支中的 a.cpp 和 Master 分支中的 a.cpp。Work 分支中的 a.cpp 是 Master 分支中 a.cpp 的祖先之一,即在提交 1002 中。
请告诉我为什么以及什么是解决它的简单方法?
[更新 1] 抱歉,我认为我过于简化了情况。实际上,在 Work 分支并入 master 分支之前,master 分支中已经有一些提交。
工作分支:1000 <--- 1001 <--- 1002
主分支应该是:1000 <-- 2001 <-- 2002
Work分支合并到Master分支后,
主分支:1000 <--- 合并 (1002, 2002) <--- 2003 <--- 2004
现在将 Master 分支合并回 Work 分支,我假设此合并没有冲突。由于编年史顺序是这样的:a.cpp 上的主代码,a.cpp 上的工作代码,a.cpp 上的主代码,工作从 Master 获取 a.cpp
[更新 2] 现在我明白会有冲突警告。Git 不遵循文件的编年史顺序。它只遵循提交的编年史顺序。