Is the semi-repository thing you are talking about the index?<p>If so, I would describe the index as a sort of staging area for preparing your commit.
You might not necessarily want to include every single change in your workspace in your next commit.
The index allows you to pick which things you want to go into the commit then git-commit creates the commit from what&#x27;s in the index.
If you don&#x27;t care for such behaviour, and you just want to commit all changes in tracked files in your workspace, git-commit -a does that.<p>This[0] is one of the best tools I&#x27;ve seen for understanding git commands and even a bit of how git works.
It&#x27;s interactive, divides things into the different &#x27;places&#x27; that content can be in git and then shows you how each command moves content between those places. Click on the workspace and it will show each command which does things to content in your workspace, the bar the command is written on shows what the other area it interacts with is and the direction that the command moves content. I hope it helps.
[0] <a href="http:&#x2F;&#x2F;ndpsoftware.com&#x2F;git-cheatsheet.html" rel="nofollow">http:&#x2F;&#x2F;ndpsoftware.com&#x2F;git-cheatsheet.html</a>