I wonder what happens when developer B adds file B that depends on the behavior of file A, but file As behavior is being changed locally by developer (A) at the same time. when developer A attempts to push their changes, they may be able to resolve this (from gits perspective) using the methods you’ve described, but the project wont build and dev A will have to fix/update dev Bs code.