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

Kok*_*oko 23 git merge github

GIT继续以无用的错误警告让我感到困惑:(这个确实应该获奖:

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

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

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

git merge remote/master
Run Code Online (Sandbox Code Playgroud)

结果是

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.
Run Code Online (Sandbox Code Playgroud)

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

merge: remote/master - not something we can merge
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*iak 13

可能是未合并的路径导致

error: Merging is not possible because you have unmerged files.
Run Code Online (Sandbox Code Playgroud)

如果是这样,请尝试:

git status
Run Code Online (Sandbox Code Playgroud)

如果它说

您有未合并的路径。

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

git merge --abort
Run Code Online (Sandbox Code Playgroud)

您可能还会看到未合并路径下列出的文件,您可以通过执行

git rm <file>
Run Code Online (Sandbox Code Playgroud)

  • 这只是一个无用的错误消息......就我而言,这主要意味着我有必须手动修复的合并冲突。如果错误消息确实这么说的话,将会有很大帮助。 (3认同)

Avi*_*han 8

git status简单的方法是在终端窗口/命令提示符中输入。这应该会显示需要添加或删除的文件 git 状态命令

然后您可以执行以下操作:git add后跟文件路径(将文件添加到将来的提交中),或者删除它们并git rm后跟文件路径(从将来的提交中删除文件)。澄清一下,后一个命令不会从您的系统中删除该文件。

当所有红色的文件处理完毕后,就可以commit然后push了。


Jon*_*ink 7

错误消息:

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

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

将"遥控器"视为Git服务器的URL的别名.master是您在本地检出的分支版本.origin/mastermaster您提取(下载)的Git服务器的最新版本.A fetch总是安全的,因为它只会更新分支的"origin/x"版本.

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

git fetch
Run Code Online (Sandbox Code Playgroud)

然后,执行合并:

git merge origin/master
Run Code Online (Sandbox Code Playgroud)

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

git pull origin master
Run Code Online (Sandbox Code Playgroud)

pull命令将一步完成fetchmerge为您完成.


小智 7

我也有类似的问题。

\n

我的问题:当我合并分支并解决与 IDE 的冲突时,IDE 会正常显示提交面板,但事实并非如此。

\n

我认为我已经成功合并,但是当我推送或拉出 \xef\xbc\x8cgit 时,提醒我“在合并之前提交更改”或“更新被拒绝,因为当前分支的尖端落后”。

\n

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

\n

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

\n


小智 6

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

git merge --abort # The unresolved conflict will be cleared off
Run Code Online (Sandbox Code Playgroud)

您可以继续休息之前的工作。

  • 致命:没有合并可以中止 (3认同)

Tob*_*eis 5

当我读到这个错误时,我遇到了同样的问题,无法决定是笑还是把头撞在桌子上......

git 真正试图告诉你的是:“你已经处于合并状态,需要首先解决那里的冲突!”

您尝试合并并发生冲突。然后,git 保持在合并状态,如果你想解决与其他命令的合并,git 认为你想要执行一个新的合并,所以它告诉你你不能这样做,因为你当前未合并的文件......

您可以保留此状态git merge --abort,然后尝试执行其他命令。

就我而言,我尝试了拉动,并希望在错误发生时手动解决冲突......

  • 很高兴知道我不是唯一一个经常被 git 的神秘错误消息困惑的人。 (2认同)