Git 2.21 changes the messages git merge outputs for certain types of conflicts (rename/add and rename/rename conflicts, for example), and what files (and file contents) are left in the work tree after the merge fails. These changes break Bitbucket Server's ability to display conflicts in pull request diffs, resulting in the system displaying a diff between the common ancestor and the tip of the source branch rather than a diff between the tip of the target branch and a theoretical merge (the normal diff shown).
As Git 2.21 has not yet been formally released (these behavior changes were observed in 2.21 release candidates), administrators should not upgrade to it. After 2.21 has been officially released, until it is added to our Supported Platforms, administrators should not upgrade to it. This type of issue is why we strongly discourage trying to run Bitbucket Server with versions of Git we haven't explicitly listed as supported. For administrators relying on repositories like the Ubuntu Git Maintainers PPA, we recommend pinning the version to avoid unexpected upgrades while updating other packages.
For anyone who has upgraded, the only workaround is to downgrade back to a supported version of Git. It will require changes to Bitbucket Server's git merge handling code in order for it to handle Git 2.21's conflict output and work tree state correctly.
This is only relevant for the Git version installed on the server where Bitbucket Server is running. Client machines which interface with Bitbucket Server can run Git 2.21 without issue.