one thing important while understanding git dvcs is the directory. the working directory, the folder. and all the paths in it. it is a tree. in git parlance, the working tree. and all these paths in the working tree are nodes. each node has an address, ie, the very filesystem path. at one extreme, for all these files have lines, git is precise even till the line number. so there is addressing, all the way, from root folder, through directories, to individual files, to even the lines in them.
aside: the other tree is the git repository (.git directory) itself.
git is a vcs. it is used to control versions. that means it helps us preserve information about collaborating on a common artifact, in a format that can be replayed, so that the different states/its-pieces are organised on multiple axes. this common artifact is the git repository.
git itself is not opinionated about how often these snapshots should be made.
one model for a common artifact is just in space.
orthogonality/independence between snapshots, is important to understand here. while building a repository, two snapshots are said to be mutually orthogonal if, in between the set of respective nodes that these snapshots modify, there is exactly 0 node common. for if in between any two snapshots, if there are such common nodes, which are different in both the snapshots, then we can diff both these snapshots to see what exactly the difference are, in one view.
one thing important while understanding git dvcs is the directory. the working directory, the folder. and all the paths in it. it is a tree. in git parlance, the working tree. and all these paths in the working tree are nodes. each node has an address, ie, the very filesystem path. at one extreme, for all these files have lines, git is precise even till the line number. so there is addressing, all the way, from root folder, through directories, to individual files, to even the lines in them.
git is a vcs. it is used to control versions. that means it helps us preserve information about collaborating on a common artifact, in a format that can be replayed, so that the different states/its-pieces are organised on multiple axes. this common artifact is the git repository.
git itself is not opinionated about how often these snapshots should be made.
one model for a common artifact is just in space.
orthogonality/independence between snapshots, is important to understand here. while building a repository, two snapshots are said to be mutually orthogonal if, in between the set of respective nodes that these snapshots modify, there is exactly 0 node common. for if in between any two snapshots, if there are such common nodes, which are different in both the snapshots, then we can
diff
both these snapshots to see what exactly the difference are, in one view.