I'm on branch A and branch B is ahead of it. I want to see the changes in B from A, but when I run git diff B it shows its additions as deletions and vice-versa, and if I want to put B's changes into the working copy of A (desirable if I have a test offshoot branch), trying to run git diff B > Bfile then git apply Bfile just throws a bunch of errors.
If I instead type git diff A..B (I'm already on A) it shows the correct changes.
So why does the first command show the changes as deletions when they're additions? It seems redundant and counter-intuitive to have to type out the branch I'm already on when I just want the accurate changes with another branch.