"ours" and "theirs" mean opposite things depending on whether you're merging or rebasing — because rebase replays your own commits as if they were incoming patches onto a different HEAD. Every combination, in one place.
Rebase works by temporarily replaying your commits as if they were patches being applied onto a new base. That's why "ours" flips: during a rebase, the base you're moving onto plays the role HEAD normally plays in a merge, and your own commit plays the role of the incoming change.
git merge feature (while on main) — ours = main (HEAD), theirs = feature
Release branch has a hotfix that must survive no matter what; feature is noisy and touches the same lines. On the release branch: git merge -X ours feature keeps the hotfix on every conflicting hunk while still pulling in feature's non-conflicting changes. To discard feature's content entirely but still record that a merge happened, use git merge -s ours feature instead — a different flag, not the same as -X ours.
-X ours / -X theirs only resolve hunks that actually conflict — non-conflicting changes from the other side are still applied. Whole-branch discard is `-s ours` (a merge *strategy*, not a strategy *option*), which is easy to confuse with `-X ours` since the words look almost identical.