1375

我创建了一个名为“f”的分支并进行了结帐。当我尝试git pull命令时,我收到了这条消息:

You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you can merge.

当我尝试时git status,它给了我以下信息:

On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 13 different commit(s) each, respectively.
#
# Changes to be committed:
#
#   modified:   app/assets/images/backward.png
#   modified:   app/assets/images/forward.png
#   new file:   app/assets/images/index_background.jpg
#   new file:   app/assets/images/loading.gif
#   modified:   app/assets/images/pause.png
#   modified:   app/assets/images/play.png
#   new file:   app/assets/javascripts/jquery-ui-bootstrap.js
#   new file:   app/assets/stylesheets/jquery-ui-bootstrap.css
#   modified:   app/controllers/friends_controller.rb
#   modified:   app/controllers/plays_controller.rb
#   modified:   app/mailers/invite_friends_mailer.rb
#   modified:   app/mailers/send_plays_mailer.rb
#   modified:   app/mailers/shot_chart_mailer.rb
#   modified:   app/views/friends/show_plays.html.erb
#   modified:   app/views/layouts/application.html.erb
#   modified:   app/views/plays/_inbox_table.html.erb
#   modified:   app/views/plays/show.html.erb
#   modified:   app/views/welcome/contact_form.html.erb
#   modified:   app/views/welcome/index.html.erb
#   modified:   log/development.log
#   modified:   log/restclient.log
#   new file:   tmp/cache/assets/C1A/C00/sprockets%2Fb7901e0813446f810e560158a1a97066
#   modified:   tmp/cache/assets/C64/930/sprockets%2F65aa1510292214f4fd1342280d521e4c
#   new file:   tmp/cache/assets/C73/C40/sprockets%2F96912377b93498914dd04bc69fa98585
#   new file:   tmp/cache/assets/CA9/090/sprockets%2Fa71992733a432421e67e03ff1bd441d8
#   new file:   tmp/cache/assets/CCD/7E0/sprockets%2F47125c2ebd0e8b29b6511b7b961152a1
#   modified:   tmp/cache/assets/CD5/DD0/sprockets%2F59d317902de6e0f68689899259caff26
#   modified:   tmp/cache/assets/CE3/080/sprockets%2F5c3b516e854760f14eda2395c4ff2581
#   new file:   tmp/cache/assets/CED/B20/sprockets%2F423772fde44ab6f6f861639ee71444c4
#   new file:   tmp/cache/assets/D0C/E10/sprockets%2F8d1f4b30c6be13017565fe1b697156ce
#   new file:   tmp/cache/assets/D12/290/sprockets%2F93ae21f3cdd5e24444ae4651913fd875
#   new file:   tmp/cache/assets/D13/FC0/sprockets%2F57aad34b9d3c9e225205237dac9b1999
#   new file:   tmp/cache/assets/D1D/DE0/sprockets%2F5840ff4283f6545f472be8e10ce67bb8
#   new file:   tmp/cache/assets/D23/BD0/sprockets%2F439d5dedcc8c54560881edb9f0456819
#   new file:   tmp/cache/assets/D24/570/sprockets%2Fb449db428fc674796e18b7a419924afe
#   new file:   tmp/cache/assets/D28/480/sprockets%2F9aeec798a04544e478806ffe57e66a51
#   new file:   tmp/cache/assets/D3A/ED0/sprockets%2Fcd959cbf710b366c145747eb3c062bb4
#   new file:   tmp/cache/assets/D3C/060/sprockets%2F363ac7c9208d3bb5d7047f11c159d7ce
#   new file:   tmp/cache/assets/D48/D00/sprockets%2Fe23c97b8996e7b5567a3080c285aaccb
#   new file:   tmp/cache/assets/D6A/900/sprockets%2Fa5cece9476b21aa4d5f46911ca96c450
#   new file:   tmp/cache/assets/D6C/510/sprockets%2Fb086a020de3c258cb1c67dfc9c67d546
#   new file:   tmp/cache/assets/D70/F30/sprockets%2Facf9a6348722adf1ee7abbb695603078
#   new file:   tmp/cache/assets/DA3/4A0/sprockets%2F69c26d0a9ca8ce383e20897cefe05aa4
#   new file:   tmp/cache/assets/DA7/2F0/sprockets%2F61da396fb86c5ecd844a2d83ac759b4b
#   new file:   tmp/cache/assets/DB9/C80/sprockets%2F876fbfb9685b2b8ea476fa3c67ae498b
#   new file:   tmp/cache/assets/DBD/7A0/sprockets%2F3640ea84a1dfaf6f91a01d1d6fbe223d
#   new file:   tmp/cache/assets/DC1/8D0/sprockets%2Fe5ee1f1cfba2144ec00b1dcd6773e691
#   new file:   tmp/cache/assets/DCC/E60/sprockets%2Fd6a95f601456c93ff9a1bb70dea3dfc0
#   new file:   tmp/cache/assets/DF1/130/sprockets%2Fcda4825bb42c91e2d1f1ea7b2b958bda
#   new file:   tmp/cache/assets/E23/DE0/sprockets%2Fb1acc25c28cd1fabafbec99d169163d3
#   new file:   tmp/cache/assets/E23/FD0/sprockets%2Fea3dbcd1f341008ef8be67b1ccc5a9c5
#   modified:   tmp/cache/assets/E4E/AD0/sprockets%2Fb930f45cfe7c6a8d0efcada3013cc4bc
#   new file:   tmp/cache/assets/E63/7D0/sprockets%2F77de495a665c3ebcb47befecd07baae6
#   modified:   tmp/pids/server.pid
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   Coachbase/
#   log/development.log.orig
#   log/restclient.log.orig

我该怎么办?

4

18 回答 18

2483

问题是您之前的拉动未能自动合并并进入冲突状态。在下一次拉动之前,冲突没有得到妥善解决。

  1. 撤消合并并再次拉动。

要撤消合并:

git merge --abort [从 git 版本 1.7.4 开始]

git reset --merge [以前的 git 版本]

  1. 解决冲突。

  2. 不要忘记添加并提交合并。

  3. git pull现在应该可以正常工作了。

于 2012-07-25T10:38:31.393 回答
127

如果您确定您已经解决了所有合并冲突:

rm -rf .git/MERGE*

并且错误将消失。

于 2014-02-17T12:52:45.043 回答
91

我认为值得一提的是,该消息You have not concluded your merge (MERGE_HEAD exists)可能出现的场景有很多,因为可能有很多人在搜索该消息后到达了该页面。分辨率将取决于您如何到达那里。

git status始终是一个有用的起点。

如果您已经将内容合并到您满意的程度,并且仍然收到此消息,则可以像这样做一样简单

git add file
git commit

但同样,这真的取决于情况。在尝试任何事情之前了解基础知识是个好主意(Terence 发布了相同的链接): Git - Basic Merge Conflicts

于 2014-07-18T04:45:59.863 回答
57

我认为这是正确的方法:

git merge --abort

git fetch --all

然后,您有两个选择:

git reset --hard origin/master

或者,如果您在其他分支上:

git reset --hard origin/<branch_name>
于 2019-08-26T19:17:28.207 回答
24

中止对我不起作用。所以我不得不这样做continue,这对我有用:

git merge --continue
于 2021-04-22T02:21:30.510 回答
16

尝试

git reset --hard origin/trunk

'trunk' 是我想要到达的分支。

我不知道这是如何或为什么起作用的。它与我所做的一些提交有关,这迫使我的拉取请求进行合并。

于 2019-03-13T16:45:29.123 回答
11

我解决了冲突并提交了但仍然收到此错误消息git push

所有冲突都已修复,但您仍在合并。
(使用“git commit”结束合并)

我做了这些步骤来解决错误:

rm -rf .git/MERGE*
git pull origin branch_name 
git push origin branch_name
于 2016-11-08T06:25:52.497 回答
9

提交合并更改解决了我的问题:

git commit -m "commit message"
于 2020-03-13T12:21:11.043 回答
7

只需运行此命令即可中止冲突:

git merge --abort

之后,您可以拉取您的项目:

git pull origin YOUR_BRANCH

测试 git 版本 2.25.1

于 2021-08-25T14:54:55.497 回答
5

就我而言,我有一个产生许多合并冲突的樱桃选择,所以我决定不完成樱桃选择。我放弃了所有的更改。这样做使我进入收到以下错误的状态:

您尚未完成合并(MERGE_HEAD 存在

为了解决这个问题,我执行了以下解决问题的 git 命令。

git cherry-pick --abort
于 2017-09-29T15:38:54.120 回答
5

尝试更改任何临时文件。就像只是删除任何空间或添加空间,然后提交并推送该文件。

git add 'temporary_change_file'

git commit -m "git 问题解决"

git push origin 开发

然后尝试 git pull,

git pull origin 开发

希望这可以帮助你。

于 2018-05-10T05:12:04.220 回答
4

块引用

如果您试图从另一个分支拉入您的分支。如果您看到此错误。

首先,您应该尝试执行 git commit,然后将另一个分支拉入您的分支。

  1. “混帐添加。”
  2. git 提交
  3. 然后从所需的分支执行 git pull 。
于 2019-01-24T21:18:08.943 回答
3

最好的方法是撤消合并并再次执行合并。通常你会把事情的顺序搞砸。尝试解决冲突,让自己陷入混乱。

所以撤消它并再次合并。

确保为您的环境设置了适当的差异工具。我在 Mac 上使用 DIFFMERGE。我认为 DIFFMERGE 适用于所有环境。说明在这里:在 MAC 上安装 DIFF Merge

我有这个有助于解决我的冲突:Git Basic-Merge-Conflicts

于 2013-11-14T06:54:33.460 回答
3

解决冲突后,我们可以使用git merge --continuegit 2.12 及以上版本继续合并。可以看到这个答案

于 2020-10-06T08:49:28.137 回答
1

首先,用于git pull合并存储库保存您的更改。然后重新输入git commit -m "your commit"

于 2019-06-07T05:03:35.997 回答
1

我解决了冲突,然后使用 -a 选项进行了提交。它对我有用。

于 2020-10-29T14:25:31.730 回答
0

首先,在继续之前确保没有冲突。

检查是否没有MERGE_MSG。* .git 文件夹中的文件。

我知道没有冲突,不知何故我有两个(一个 * .swp第二个 * .swo)并删除它们(尝试将它们剪切+粘贴到某个不同的目录以防万一)有助于处理错误和合并成功。

于 2021-10-26T05:54:08.000 回答
-12

这对我有用:

git log
`git reset --hard <089810b5be5e907ad9e3b01f>`
git pull
git status
于 2015-09-21T12:42:47.337 回答