ChatGPT解决这个技术问题 Extra ChatGPT

You have not concluded your merge (MERGE_HEAD exists)

git

I made a branch called 'f' and did a checkout to master. When I tried the git pull command I got this message:

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

When I try the git status, it gave me the following:

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

What should I do?


c
codeforester

The problem is your previous pull failed to merge automatically and went to conflict state. And the conflict wasn't resolved properly before the next pull.

Undo the merge and pull again.

To undo a merge:

git merge --abort [Since git version 1.7.4]

git reset --merge [prior git versions]

Resolve the conflict. Don't forget to add and commit the merge. git pull now should work fine.


I tried and gave me conflict in files(when pull) Auto-merging app/views/layouts/application.html.erb Auto-merging log/development.log CONFLICT (content): Merge conflict in log/development.log Auto-merging log/restclient.log CONFLICT (content): Merge conflict in log/restclient.log Automatic merge failed; fix conflicts and then commit the result. I fixed the local files specified, and then I tried 'git pull' Pull is not possible because you have unmerged files. Please, fix them up in the work tree, and then use 'git add/rm ' as appropriate to mark resolution, or use 'git commit -a'.
@AnkitSuri, After fixing the conflicts, did you stage them and commit?
I tried it and it help me to get on flow again. After revert back I did try "git mergetool". It directly associate with merging tool.
Does not work: [env]$ git merge --abort fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you can merge.
@KarthikBose, it actually did end up working. Since I was working over SSH, I had to start a new session and do a git status.
k
knagode

If you are sure that you already resolved all merge conflicts:

rm -rf .git/MERGE*

And the error will disappear.


if you remove MERGE_HEAD, won't the resulting commit only have one parent so you won't have the history of the merged branch?
@JasonGoemaat in my case I'm temporarily merging in multiple PRs that haven't been accepted yet. I don't plan to commit those merges on the feature branch, I just need them during development.
I had already resolved my conflicts and was still getting this error. So the command worked for me.
This saved me from a nasty merge conflict loop.
C
Community

I think it's worth mentioning that there are numerous scenarios in which the message You have not concluded your merge (MERGE_HEAD exists) could occur, because many people have probably arrived at this page after searching for said message. The resolution will depend on how you got there.

git status is always a useful starting point.

If you've already merged the contents to your satisfaction and are still getting this message, it could be as simple as doing

git add file
git commit

But again, it really depends on the situation. It's a good idea to understand the basics before attempting anything (same link Terence posted): Git - Basic Merge Conflicts


Thank you for asking this, for those of us with the simpler type of problem. "Git status" was what a newbie like me needed, to be reminded that the last step of fixing a conflicted merge was the simple command "git commit".
This has been really helpful, after checking, I discovered that I needed to add a file I modified unknowingly.
B
Badr Bellaj

I think this is the right way :

git merge --abort

git fetch --all

Then, you have two options:

git reset --hard origin/master

OR If you are on some other branch:

git reset --hard origin/<branch_name>

only git merge --abort worked itself && git pull then
git reset --hard origin/ worked for me. Thanks!
Those commands delete all your local changes. We don't need that!
A
Aakash

Abort did not work for me. So I had to continue and this is what worked for me:

git merge --continue

This fixed my problem, but I would love to know how my branch got into this state.
@AlexDresko, it could be because there was no` diff `between your branch and what you are trying to merge with after resolving the conflicts.
A
Aakash

Try

git reset --hard origin/trunk

'trunk' is the branch that I am trying to get to.

I don't know how or why this works. It had something to do with some commit I made which was forcing my pull requests to do a merge.


This worked in combination with above answers for me
A
Aakash

I resolved conflicts and also committed but still getting this error message on git push

All conflicts fixed but you are still merging. (use "git commit" to conclude merge)

I did these steps to resolve error:

rm -rf .git/MERGE*
git pull origin branch_name 
git push origin branch_name

What does the push at the end accomplish?
A
Aakash

Commit merge changes solved my problem:

git commit -m "commit message"

P
Pejman Kheyri

Just run this command for aborting the conflict:

git merge --abort

After that, you can pull your project:

git pull origin YOUR_BRANCH

Tested git version 2.25.1


C
Community

Try changing any temporary file. Like just remove any space or add space and then commit and push that file.

git add 'temporary_change_file' git commit -m "git issue resolving" git push origin develop

And then try git pull,

git pull origin develop

Hope this might help you.


A
Aakash

In my case I had a cherry pick that produce a number of Merge Conflicts, so I decide to not complete the cherry pick. I discarded all my changes. Doing so put me into a state where I received the following error:

You have not concluded your merge (MERGE_HEAD exists

To fix the issue I performed the following git command which fixed the problem.

git cherry-pick --abort

R
Rohith

Blockquote

If you're trying to pull from another branch into your branch. If you're seeing this error.

First, you should try doing git commit and then pull another branch into yours.

"git add . " git commit Then do git pull from the required branch.


T
Terence

Best approach is to undo the merge and perform the merge again. Often you get the order of things messed up. Try and fix the conflicts and get yourself into a mess.

So undo do it and merge again.

Make sure that you have the appropriate diff tools setup for your environment. I am on a mac and use DIFFMERGE. I think DIFFMERGE is available for all environments. Instructions are here: Install DIFF Merge on a MAC

I have this helpful resolving my conflicts: Git Basic-Merge-Conflicts


P
Pyae Hlian Moe

We can use git merge --continue with git version 2.12 and above to continue your merging after resolved the conflict. Can see this answer


N
Nupur Sharma

I got this issue when I had two commits with same messages. What fixed my issue is,

git add.
git commit -m "New commit message"

J
Jack loner

first,use git pull to merge repository save your change.then retype git commit -m "your commit".


S
Svetoslav Marinov

I resolved the conflict and then do a commit with -a option. It worked for me.


h
h_a_l_a_s

First, make sure there are no conflicts before proceeding.

Check if there is no MERGE_MSG.* file in your .git folder.

I knew there are no conflicts and somehow I´ve got 2 of those (one *.swp second *.swo) and deleting them (try maybe to cut+paste them to some different directory just in case) helped to handle the error and merge successfully.


u
user8128167

Git commit with add flag solved my problem:

$ git commit -am "commit message"

B
Bob Gilmore

This worked for me:

git log
`git reset --hard <089810b5be5e907ad9e3b01f>`
git pull
git status

First of all, this will delete all working directory changes. Also the hardcoded version is not helpful, perhaps something like HEAD^ is better.
@Plus1 This is exactly what I need - remove my wrong local commits and apply changes with respect to the changed source code. Thank you for your answer!
It caused a problem in my case