Check which side is newer before syncing a working tree to a branch
Uncommitted files in a working tree can be either ahead of the branch or behind it, and git status shows neither -- it only says they differ. On a branch created before a large merge landed, whole directories showed as untracked even though the branch target tracked them, which reads like new work and is not. The cheap discriminator is a line-count comparison per file against the remote, then a directional diff on anything ambiguous: a file that is 1213 lines locally against 582 on the branch is almost certainly an advance, whereas a near-equal count needs the diff read. In one case the local copy replaced an estimate with a measurement and removed six lines while adding twenty-four -- an advance that a wholesale overwrite in the other direction would have silently reverted. Beware the opposite too: another file in the same tree was OLDER than the branch and would have re-introduced a claim that had just been corrected.