问题
There are plenty of SO answers and tutorials on the web that say there is a difference between which branch is ours and which branch is theirs depending on whether it's a rebase or a merge, and explain why, usually with a handy table, as do the man pages and online docs (sans the table).
Thing is, I don't care to remember. I'm not a fan of cognitive load for trivial things that the computer should be able to tell me or simply show me.
Is there a command or ENV var or suchlike that contains this information? (A search of my env brings up nothing but maybe I need to enable something first). The kind of thing I can stick in the prompt would be perfect. If it can handle the middle of rebase with a conflict where the target branch becomes a reference to the commit reached, that would be even better.
Judging by the amount of confusion and warnings about this you'll be doing everyone a favour by sharing if there is.
Any help or insight will be much appreciated.
回答1:
As I explained here:
whatever HEAD's pointing to is "ours"
The one tool that makes cristal clear what is ours vs theirs is VSCode.
See "Resolve merge conflicts"
- The current change are ours.
- The incoming change are theirs.
回答2:
When you merge A to B, where A and B are commit-ish(more than branches), B is ours and A is theirs. As commits, B = HEAD and A = MERGE_HEAD.
When you rebase A onto B, B is ours and A is theirs. As commits, B = HEAD and A = REBASE_HEAD.
When you cherry-pick A to B, B is ours and A is theirs. As commits, B = HEAD and A = CHERRY_PICK_HEAD.
You can use commands against HEAD, MERGE_HEAD, REBASE_HEAD and CHERRY_PICK_HEAD, like git show MERGE_HEAD.
来源:https://stackoverflow.com/questions/59657111/is-there-a-command-to-say-which-branch-is-ours-or-theirs