Is there a way of committing code transformations or refactorings in git, perhaps as metadata for an actual commit, so that code editing tools can apply the change as a conceptual transformation instead of a whole lot of text changes?
To illustrate, suppose that a class has a public property FOO. Someone might rename FOO to BAR and commit that. Unfortunately now every other branch that uses FOO will now have a merge conflict or break on compilation. If instead the change were somehow stored as "refactor: rename FOO to BAR" then, on rebase, the change would be implemented in other branches as well.
It might be that some language aware code tools are smart about this and say "Oops, this thing has no property FOO. Did it ever have a property FOO? Let me look back in git history and aha, yes it did, it is now called BAR. Let me update FOO to BAR here as well.". That would not need any special annotation.
Personally my answer is "don't rename stuff unless you absolutely have to". Unfortunately editors have refactor buttons and some people are trigger happy. If there is a button, why not press it? It is so quick and easy!