Maybe this will help with the concepts: <a href="https:&#x2F;&#x2F;www.dropbox.com&#x2F;sh&#x2F;quumaubjftxik1u&#x2F;AAD15CT1UrNyOuYSxmyPwPvba?dl=0" rel="nofollow">https:&#x2F;&#x2F;www.dropbox.com&#x2F;sh&#x2F;quumaubjftxik1u&#x2F;AAD15CT1UrNyOuYSx...</a><p>The main point is to make your commits small and incremental, with a single commit adding a single feature (or fixing a bug, etc). If you are reading the commit log, there shouldn&#x27;t be any surprises as to what a particular commit actually changes when applied. If you have a lot of uncommitted changes, remember that you don&#x27;t have to add them all at once -- use &#x27;git add file1 file2&#x27; and make descriptive messages for each change. Also remember that you can &#x27;rebase --interactive&#x27; to fix up your commits locally if you want (don&#x27;t rebase shared&#x2F;pushed history, though).