For the vast majority users automatically reverting file-visiting buffers after they have changed on disk is harmless.
If a buffer is modified (i.e. it contains changes that haven’t been saved yet), then Emacs would refuse to automatically revert it. If you save a previously modified buffer, then that results in what is seen by Git as an uncommitted change. Git would then refuse to carry out any commands that would cause these changes to be lost. In other words, if there is anything that could be lost, then either Git or Emacs would refuse to discard the changes.
However if you do use file-visiting buffers as a sort of ad hoc "staging area", then the automatic reverts could potentially cause data loss. So far I have only heard from one user who uses such a workflow.
An example: You visit some file in a buffer, edit it, and save the
changes. Then, outside of Emacs (or at least not using Magit or by
saving the buffer) you change the file on disk again. At this point
the buffer is the only place where the intermediate version still
exists. You have saved the changes to disk, but that has since been
overwritten. Meanwhile Emacs considers the buffer to be unmodified
(because you have not made any changes to it since you last saved it
to the visited file) and therefore would not object to it being
automatically reverted. At this point an Auto-Revert mode would kick
in. It would check whether the buffer is modified and since that is
not the case it would revert it. The intermediate version would be
lost. (Actually you could still get it back using the
If your workflow depends on Emacs preserving the intermediate version in the buffer, then you have to disable all Auto-Revert modes. But please consider that such a workflow would be dangerous even without using an Auto-Revert mode, and should therefore be avoided. If Emacs crashed or if you quit Emacs by mistake, then you would also lose the buffer content. There would be no autosave file still containing the intermediate version (because that was deleted when you saved the buffer) and you would not be asked whether you want to save the buffer (because it isn’t modified).