When invoking git mv file1 file2 does it record the move internally (for history tracking in the log) or is it completely the same as invoking mv file1 file2<
git mv is exactly the same as the three operations you listed. Although Git does not explicitly record the move in the repository, the move is detected later whenever you ask for history. For example, adding the --follow switch to git log automatically finds files that have been renamed.