I merged in changes from another branch but I am getting conflicts because a file has been deleted on the remote branch but has changes on local branch.
I would like to delete the file - I tried git rm path/to/file
but it says file: needs merge
. What is the best way of removing the file and committing the merge?
Select Stage Changed Files To Commit (Ctrl-I) from Commit menu. Enter a commit comment like "deleted conflicting file" Commit (ctrl-enter) Now if you restart the merge it will (hopefully) work.
Git does not apply deleted files when merging an old branch into the master.
Try using the --force
parameter:
git rm --force <file>
If you want to keep the file in filesystem:
git rm --cached <file>
I tried
git rm path/to/file
but it says file:needs merge
You will no longer see that error message with Git 2.23 (Q3 0219, seven years later)
"git rm
" resolving a conflicted path used to leak an internal message "needs merge
" before actually removing the path, which was confusing.
This has been corrected.
See commit b2b1f61 (17 Jul 2019) by Junio C Hamano (gitster
).
(Merged by Junio C Hamano -- gitster
-- in commit 5e9d978, 25 Jul 2019)
rm: resolving by removal is not a warning-worthy event
When resolving a conflict on a path in favor of removing it, using "
git rm
" on it is the standard way to do so.
The user however is greeted with a "needs merge
" message during that operation:$ git merge side-branch $ edit conflicted-path-1 $ git add conflicted-path-1 $ git rm conflicted-path-2 conflicted-path-2: needs merge rm 'conflicted-path-2'
The removal by "
git rm
" does get performed, but an uninitiated user may find it confusing:
"needs merge
? So I need to resolve conflict before being able to remove it???"The message is coming from "
update-index --refresh
" that is called internally to make sure "git rm
" knows which paths are clean and which paths are dirty, in order to prevent removal of paths modified relative to the index without the "-f
" option.We somehow ended up not squelching this message which seeped through to the UI surface.
Use the same mechanism used by "
git commit
", "git describe
", etc. to squelch the message.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With