Thanks for this Daniel
I think that visualising the working vs staging area like this is definitely helpful and I’ve been thinking about I can try and demonstrate this in a visual way in a lecture theatre - especially using a metaphor such as envelopes of something
The problem I face, and I think that your demonstrator suffers from too, is that what it shows is not what is happening in git. It appears that the files move from the working copy into the index on a git add, then move into the repository on a git commit, which is not the case.
Git add adds the file to the repository (or at least created an object for that file), and
git commit creates a commit object that sets that file in the history.
I think I’m conflicted about whether it is ok for students to have an understanding of git that is inaccurate but enough to get them using it, or whether they ought to learn what is actually happening - which in truth is not all that complicated.
Hope this doesn’t sound like a criticism of what you’ve done - it’s impressive - it’s just that it’s tapped into a personal agony on the subject.