Daniel Stephens
Daniel Stephens

Reputation: 3219

Manually resolve git conflict by overwriting the conflicting file with the final content

I am in the situation of having a merge conflict in git, so far so good. After the merge I have a file foo.txt in my repository:

<<<<<<< HEAD
line 1 from-foo-branch
line 2 in bar-branch
||||||| empty tree
=======
line 1 from-foo-branch
line 2 in bar-branch
sdfgsdfgsdfg
>>>>>>> dev_futurama

If I open the conflicted file foo.txt with a non-git editor, thats what I have in it. I want to resolve the file with this external non-git editor. How must the solution look like and how can I proceed with the merge via terminal?

Upvotes: 1

Views: 848

Answers (2)

CodeWizard
CodeWizard

Reputation: 142164

Edit the file in any editor you wish.

How to set the desired git editor?

 # Set the default git editor
 git config --global core.editor <your editor>

Once the conflict is resolved simply save the file then add it to the index and commit enter image description here


Tip:

If you wish to add some of the changes and not all of them at once use the git add -p

These are the options you can do within add -p:

y - stage this hunk
n - do not stage this hunk
q - quit, do not stage this hunk nor any of the remaining ones
a - stage this and all the remaining hunks in the file
d - do not stage this hunk nor any of the remaining hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help

Once you use the s it will pick the chunk of code which can be considered as a standalone change. If you want to split it, even more, you will have to use the e to edit the hunk and then add it back to the stage area.

enter image description here

Upvotes: 2

Shashank V
Shashank V

Reputation: 11193

Sure you can overwrite the file with merge markers with content of new file. Just do git add <file> and git commit after that.

Upvotes: 2

Related Questions