I believe that you're talking about Git, right?
When you have conflict between your file and the file that you're merging, you have two choices:
"Mine" - Your file will be used to solve the conflicts
"Theirs" - The Target file will be used to solve the conflicts.
It depends on what you need to use to solve the file conflict.
Oh... then it was good I asked first. Because that wasn't obvious to me. I wasn't able to find any references that described this either.
Is this the wording normally used for such operation? Is there perhaps more clearer wording? Or am I the only one to find this confusing?
Let's say we have two branches branch1 and branch2. Assume we are in branch2 and we merge the last commit of branch1 into the branch2 and we get conflicts. Now:
Hi I'd just like to point out that Henrique's answer is incorrect for SourceTree 2.5.2 (current as of June 2017) per my understanding and experience (perhaps I misunderstood). This is a git repo.
Here is the state before merge: branch v4 has all the new stuff, branch develop is behind. I'm merging v4 into develop.
Current branch: develop
Merge v4 -> Develop
Mine == Use the file as it is in Develop, ie. the same branch I am in
Theirs == Use the file as it is in v4, ie. the branch I am not in
This makes sense to me (it's what I expected), but appears to be the opposite of Henrique's answer.
I just gave it a shot and at least when applying stash it seems to work the way you describe it:
mine: uses the file in the currently active branch
theirs: uses the file from the stash
"mine" and "theirs" is horribly confusing, and seems to vary depending on whether you're doing a merge or a rebase.
So confusing that I always have to use an external merge tool to get it right.
Please change this to use the branch names or commit IDs instead.
This is still not resolved ahaha.
Ok, here is a work around source tree.
- Open the panel that shows conflicting files in source tree.
- Open visual studio code
- Drag the conflicting file from source tree into VSCode.
- Resolve conflict
- Back in source tree and stage the file.
Can I +1 this? Not only does the UI use "mine" and "theirs", but when merging using a diff tool it creates temp files names myfile.LOCAL.txt and myfile.REMOTE.txt .. so mine is local, and theirs is remote?
Why not just have "resolve using branchname1" and have the file called myfile.branchname1.txt in the resolve tool, and "resolve using branchname2" and have the file called myfile.branchname2.txt in the resolve tool?
Resolve using "theirs" should result in my local changes discarded for that file, and the remote version taking over. Resolve using "mine" should mean I choose to keep my local version instead of the remote version. Instead, the opposite happens. The functions are switched.
Like the title says: what podcasts are in your rotation right now? Here are some favorites I've been in to from the last few weeks. The Ringer NBA Show I've been diving deep into the NBA Playoffs...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events