In this two-session hands-on course, you will experience the essence of git by working in teams to improve a simple website, laying a foundation for collaborating in a professional environment.
I’ve presented some variation of this material to every CodePlatoon cohort since Bravo. Several graduates report that, equipped with a firm grasp of these git basics, they have become go-to git resources in their software teams.
As a devops professional with three-ish decades of experience in version control, I first experienced git in 2009 when developers, those crazy people, insisted on bringing it into my company. I learned a few basic survival commands, but it wasn’t really clicking for me. Depressingly often for a version control “expert”, I got out of my depth and had to be rescued.
Eventually I tired of memorizing magic spells and decided to buckle down and learn the basics of git once-and-for-all. Suddenly, git started making sense! That feeling of enlightenment (and also the huge jump in my ability to manage code changes) eventually inspired this course.
You will get lots of practice expressing your changes in terms of git’s data model - three objects - and moving them around in git’s state model - three trees.
Along the way, we will learn and practice some Common Git Workflows.
By the end of our time, we’ll have covered the topics in the Course Syllabus.
master
branch, and make changes to the app until it looks more or less like the app on the sample-solution
branch. As prework, you will examine and run each of the commits from master
(for each commit, the app is in a runnable although incomplete state), all the way to the tip of sample-solution
. Your team will collaborate on these changes, divvying them up and delivering them to master
.In the Prework and Session One, you assembled your project team, set up your development environment and went over the code. During Session One, you got an intro to The Three Objects, and The Three Trees.
Now you’re starting to think about how to collaborate on the changes to be made.
The objective of this homework is to familiarize with the two major concepts we touched upon in Session One:
This should help you hit the ground running in Session Two.
Work through the entire Objects and Trees Handout. We’ll have already touched on parts of it in Session One, but it’s worth going all the way through.
Also, if for any reason you were not able to get your app up and running, do the prework from the beginning. This includes deleting your fork on github.com, deleting or moving your local repo, and forking and cloning a fresh repo. And please do let me know via Slack if anything is not working for you.
To keep focused on git (as opposed to Github), we will not be using any Github workflow operations apart from the fork operation.
git clone
your team lead’s fork (NOT walquis/tags!) to your local machine.Most of these are from Git-Scm