Thanks Jakub Narebski and Björn Steinbrink...Nice description Björn. I think an important piece of conceptual information missing from the docs is a concise list of the conceptual properties defining the context of the working tree, index, and repository during normal use. This itemization would go far in explaining the synergies between the various commands. Functionally, all the commands merely manipulate these properties. If these properties were summarize in context one would expect that would represent a very complete functional model of Git. A user could review the description figure what they wanted to do and then find the command(s) to accomplish it. Presently this knowledge is accreted over time as oppose to merely being read and in the space of a few minutes "groked" (of course it could be that I am particularly limited :). For example, towards a functional model, is this close? (note: all properties can be blank/empty)... REPOSITORIES Collection of Commits Collection of Branches -- collection of commits without children -- as a result each commits either augments -- and existing branch or creates a new one Master Branch -- typically the publishable development history INDEX Collections of Parent/Merge Commits -- the commit will use all these as its parent Staged Commit -- these changes are shown relative to the working tree Default Branch -- the history the staged commit is suppose to augment Collection of Stashes -- these are not copies of the working tree since they -- only contain "versioned" files/folders and so is not -- a backup WORKING_TREE Collection of Files and Folders As far as I can tell, the working tree is not suppose to be stateful, but it seems the commands treat it as such. What is interesting is that branches serve to encourage a serialized view of commits. More than structure, they are like books in a library narrating a development story. Consequently, and interestingly, they are as much the purpose of the repository as the commits they organize...which is interesting. Again, thanks for your patients. George. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html