“not something we can merge”错误是什么?

3
我有一个名为“myRepository”的远程GitHub存储库。我在那里有两个分支:master和test。我将这两个分支检出到我的工作目录c:\master和c:\test。
当我在c:\test时,执行了git merge master命令,但是遇到了错误。
merge: master - not something we can merge

Did you mean this?
        remoterepo/master

你能给我解释一下这个错误吗?我尝试把测试分支合并到主分支(所以c:\master会使用c:\test的代码进行更新),然后我想将更新推送到远程主分支。

3个回答

11

这意味着你的分支名称中有拼写错误。


6
我将这两个分支检出到我的工作目录:c:\master、c:\test。
如果这两个分支在不同的目录中,那么它们是完全独立的仓库。你不能在它们之间合并。
在Git中有多个检出目录意味着你有多个克隆版本的仓库分别存放在c:\master.git\和c:\test.git\。它们不能相互通信。
相反,使用git checkout在一个克隆版本上切换不同的分支进行所有的开发。

是的,我认为这就是问题所在...我之所以这样做是因为对我来说管理多个Eclipse工作区(每个都有一个Git分支)很容易,每个工作区都指向单独的Git工作目录。我该如何克服这种欲望? - yoav123456
1
@yoav123456 我不使用Eclipse,所以我不知道Eclipse工作区是什么。如果它像任何明智的编辑器一样工作,它会在你git checkout时自动更新。如果不行,就换个新编辑器吧。我喜欢Atom。我唯一能确定的一件事是要习惯Git的分支风格,不要与之对抗。 - Schwern
Git 可以改进他们的错误信息。 - java-addict301

0
(Schwern的答案指出了具有2个不同本地的问题...这个答案是那个答案的补充,而不是替代品)。

..........

给未来的读者:

看看这个其他的SOF答案:

合并开发分支和主分支

从那个答案中可以看出:这似乎与您是否“拉取”第二个分支有关。请注意,上面的答案中有2个pulls。

通过执行pull(因此“有点儿”获取每个分支的本地副本)...在两个分支上都执行pull,您就可以避免“不是我们可以合并的东西”“你是指这个吗?”错误消息。 “有点儿”的部分是,您没有每个分支的不同副本,而是使用git在同一本地目录中执行切换当前分支的操作。

....

现在我要在这里发布我正在使用的代码,但是我从我的答案中推理出来。在下面,我的目标是将develop合并到master中。

REM below shows the branches
git branch -a
REM below shows the branch are you on
git branch

REM below does a checkout on develop
git checkout develop
REM below, now pull the "develop" branch so that it is local
git pull

REM below does a checkout on master
git checkout master
REM below, now pull the "master" branch so that it is local
git pull

REM below shows the branch are you on, a redundant check just to make sure you're on master
git branch
REM now you should be on the master branch, and the below is going to merge develop into (the branch you are already on), aka master
git merge develop

REM git push origin master

REM the below makes it REAL on the remote server
git  push -u origin master

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接