从上游合并的冲突

时间:2018-02-22 19:17:23

标签: git github open-source

我正在与一家公司合作开发一个开源项目。我分叉他们的回购并将回购克隆在我的机器上并设置我的主分支来跟踪公司的原始回购。我开始研究这个项目,并在一个新的分支中做了一些改变。与此同时,该组织提交了大约1000份提交。现在,当我想使用命令将我的主服务器与上游合并时:

git fetch upstream

git merge upstream/master

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

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

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

我如何解决此问题或者如果它不可修复。任何人都可以帮助我解决我的错误,以便我不再犯同样的错误。

2 个答案:

答案 0 :(得分:1)

你可能需要改变主人。

git fetch upstream
git pull --rebase upstream master

我建议你阅读this,对rebase进行了很好的解释

答案 1 :(得分:0)

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

如果我把这一切都做对了,你确定你的本地主人没有什么比我从分支主人那里跑的更有意思

git reset upstream/master --hard

现在您可以担心将您的分支合并为主

git merge my_branch

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

如果你想知道git认为你从他们的桅杆上偏离了哪里就可以运行

git merge-base upstream/master
很可能你在master上做了1或2次提交然后git checkout -b mybranch。如果情况确实如此,那么您的工作在您的分支机构上是安全的,您不必担心会丢失您在本地主人上意外发生的这些提交。