Who we?
I think of them as snapshots organized in a directed acyclic graph (DAG).
Diff is only a viewing option, or an optional compression implementation detail in packed history files.
Diff is only a viewing option
It isn’t. Git uses 3-way diff/merge algorithm quite liberally behind the scenes.
Trust me, it’s a diff. I’ve seen a repo get into a very stupid state where there were changes in the main branch that weren’t in the develop branch, but a PR didn’t pick up those charges because they were somehow not in any of the commits
Depends on context.
Most of the interfacing is change based. But calling that diff is misleading.
But calling that doff is misleading.
Git actually uses diffs behind the scenes a lot - 3-way diffs/merges to be more accurate. Merging, rebasing, cherry picking and even reverting are all 3-way diff-merges.