从上游合并的冲突

Conflict in merging from upstream

我正在一家公司从事开源项目。我分叉了他们的回购并在我的机器上克隆了回购并设置了我的主分支来跟踪公司的原始回购。我开始从事该项目并在新分支中进行了一些更改。与此同时,该组织做出了大约 1000 次承诺。现在,当我想使用命令将我的主人与上游合并时:

git fetch upstream

git merge upstream/master

git 控制台显示多个文件的以下错误。

自动合并文件路径 冲突(add/add):合并文件路径中的冲突

为了推送我的更改,我需要先将我的 master 与上游合并,然后将我的工作分支与 master 合并。

我该如何解决这个问题,或者它是否无法解决。谁能帮我看看我哪里出错了,这样我就不会再犯同样的错误了。

您可能需要对 master 进行变基。

git fetch upstream
git pull --rebase upstream master

我建议你阅读this,rebase 解释得很好

在我看来,令人惊讶的是你的主人没有从他们的主人那里得到干净的合并。您期望您在本地 master 中没有进行任何更改,因为您的所有更改都在您正在处理的分支中,因此 "merging" 他们的 master 到您的 master 应该是一个简单的 "fast-forward" .但是 git 似乎不同意,它显然看到了你的主人和他们的主人之间的一些分歧。

如果我做对了,你确定你的本地 master 没有什么比我简单地 运行 来自分支 master

更有趣的了
git reset upstream/master --hard

现在你可以担心将你的分支合并到 master

git merge my_branch

并解决您的工作与他们的 1000 次提交之间的实际冲突

如果你想看看 git 认为你偏离了他们的桅杆,你可以 运行

git merge-base upstream/master

有可能您在 master 上进行了 1 或 2 次提交,然后 git checkout -b mybranch。如果是这种情况,那么你的工作在你的分支上是安全的,你不必担心丢失你不小心在本地 master 上所做的这些提交。