Git's first class objects are files, trees and commits. Changesets are never stored, only derived. Git stores snapshots, not changesets. So your statement seems to be a complete contradiction to what Git actually does.
> This guide will only make your understanding of Git worse.
I am so shocked by your assertion about git and changesets that I don't know how to begin to respond to this.
Git's first class objects are objects, which you can see on disk: `find .git/objects -type f | head`. These objects represent one of three things: blobs, trees, and commits, wherein a commit is one or more trees, and a tree is one or more blobs and trees.
The statement I quoted when I mentioned changesets was talking about copying files between the working directory and the index, which is certainly not the case. What gets added to the index is the collection of trees and blobs that will make up the next commit when it is created. I mean changeset to be the collection of trees and blobs that will make up the commit. There is no "copying" of files here.
Git's first class objects are files, trees and commits. Changesets are never stored, only derived. Git stores snapshots, not changesets. So your statement seems to be a complete contradiction to what Git actually does.
> This guide will only make your understanding of Git worse.
I am so shocked by your assertion about git and changesets that I don't know how to begin to respond to this.