Git合并是不可能的,因为我有未合并的文件

时间:2016-03-18 13:53:02

标签: git github merge

GIT继续以无用的错误警告让我感到困惑:( 这个真的值得奖励:

“git merge是不可能的,因为你有未合并的文件”

我的情况: 我在github上的主分支编辑(直接在浏览器中),同时我的本地主分支也被编辑。

愚蠢的是,我认为你可以简单地合并两个版本并完成它,但唉,我无法合并 - 因为我的文件是未合并的。

git merge remote/master

结果

error: merge is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

因此,在添加并提交本地更改然后再次尝试合并之后,我得到:

merge: remote/master - not something we can merge

显然,我在这里缺少必要的东西......我对合并意味着什么有错误的想法?如何解决这个具有不同远程主/本地主分支的问题?

5 个答案:

答案 0 :(得分:6)

错误消息:

  

merge:remote / master - 不是我们可以合并的东西

说Git不承认remote/master。这可能是因为您没有名为“remote”的“远程”。你有一个名为“origin”的“远程”。

将“遥控器”视为Git服务器的URL的别名。 master是您在本地检出的分支版本。 origin/master是您从Git服务器获取(下载)的master的最新版本。 fetch始终是安全的,因为它只会更新分支的“origin / x”版本。

因此,要让您的master分支重新同步,请首先从git服务器下载最新内容:

git fetch

然后,执行合并:

git merge origin/master

......但是,也许更好的方法是:

git pull origin master

pull命令会一步为您执行fetchmerge

答案 1 :(得分:4)

可能是未合并的路径导致

error: Merging is not possible because you have unmerged files.

如果是这样,请尝试:

git status

如果说

您有未合并的路径。

按照建议执行:解决冲突,然后完全提交或终止合并

git merge --abort

您还可能会在未合并的路径下看到文件,您可以通过执行操作来解决

git rm <file>

答案 2 :(得分:3)

前一段时间我曾多次遇到同样的挑战。当您尝试从远程存储库中提取并且您的本地实例上的某些文件与远程版本冲突时,如果您使用来自诸如IntelliJ的IDE中的git,则会出现此问题,您将被提示并允许进行选择是否要保留自己的更改,或者您希望远程版本中的更改覆盖您的更改。如果你没有做出任何选择,那么你就会陷入这场冲突。你需要做的就是运行:

git merge --abort # The unresolved conflict will be cleared off

你可以在休息之前继续你正在做的事情。

答案 3 :(得分:1)

我也遇到过类似的问题。

我的问题:当我合并分支并解决与IDE的冲突时,IDE会正常显示提交面板,但它没有。

我想我已经合并成功了,但是当我推或拉时,git提醒我“在合并之前提交您的更改”或“更新被拒绝,因为您当前分支的提示落后”。

我的解决方案:git merge --continue

如果你想中止这次合并,你也可以运行git merge --abort

答案 4 :(得分:0)

另一个可能的原因(在我的案例中涉及Intellij,但不确定是否重要):尝试将更改从主分支合并到功能分支的分支中。

换句话说,按照以下安排将“主要”合并为“当前”:

main
  |
  --feature
      |
      --current

我解决了所有冲突,GiT报告了未合并的文件,直到我从main合并到feature,然后再合并到最新,我都被困住了。