By now you are competent with the basics, and you may just work at this level. Once you become involved in large or collaborative projects, you need to take your skills and methodologies to another level. Large projects must always have a working version, a branch that it tested and not broken by new features.
This implies that we need some sort of formal methodology for introducing bug fixes and new features.
We will examine common practice in these notes.
I run a simple for mapping systems in the teaching data centre. Its an S3 buckets, pointed to as an alias from a DNS.
Just for a bit of variety, I will use HTML pages from this site for these exercises. Don't worry about learning HTML or any additional software tools. I write these pages in Notepad++ and they are intended to be simple.
I have deliberately made my job hard by making changes on GitHub and locally, all on different branches, and then I sync everything up. When you try these exercises, keep it simple, make a change in one place, tidy it all up. Then make another change.
Some of what I am doing will seem unnecessarily complicated, but there is a truism that the more complex the environment, the more we need tools to manage and track. The techniques I show here are used in professional coding environments, but they may be overkill for systems scripters.
Unless you have read my lecture notes, you are not going to be able to follow the terminology.