Resolving a 'both added' merge conflict in git?

I sometimes find it confusing using the --theirs and --ours options to identify where the file will come from. Most of the time mine will be in the branch I am rebasing which is referred to by --theirs!

You can also use git checkout <tree-ish> -- src/MyFile.cs

Where the <tree-ish> can be replaced either by the branch name or commit-id that contains the file you wish to keep.

git checkout 6a363d8 -- src/MyFile.cs

git checkout my_branch -- src/MyFile.cs

git checkout HEAD -- src/MyFile.cs


If you use git rm git will remove all versions of that path from the index so your resolve action will leave you without either version.

You can use git checkout --ours src/MyFile.cs to choose the version from the branch onto which you are rebasing or git checkout --theirs src/MyFile.cs to choose the version from the branch which you are rebasing.

If you want a blend you need to use a merge tool or edit it manually.


When doing ...

git checkout --ours someFile

It may seem like it didn't do anything when doing git status.

Just Remember to do this afterwards.

git add someFile
git status

Tags:

Git

Merge

Rebase