I'm completely confused about what mine vs theirs means. In this specific case, I've got a feature branch where I just squashed about 80 commits via rebase -i
and am merging this back into develop
. I got a few conflicts, and I just want to use whatever code is on my feature branch. I tried "mine" but that actually seemed to do the opposite.
Could someone shed some light on this terminology?
ours
and theirs
is a somewhat confusing concept; exacerbated when performing a rebase:
When performing a merge, ours
refers to the branch you're merging into, and theirs
refers to the branch you are merging from. So if you are trying to resolve conflicts in the middle of a merge:
ours
to accept changes from the branch we are currently on theirs
to accept changes from the branch we are merging into.That makes sense, right?
When rebasing, ours
and theirs
are inverted. Rebases pick files into a "detached" HEAD branch. The target is that HEAD branch, and merge-from
is the original branch before rebase. That makes:
--ours
the anonymous one the rebase is constructing, and --theirs
the one being rebased; I.e., rebasing replays the current branch's commits (one at a time) on top of the branch that we intend to rebase with.