tags

Collaborating with git

Introduction

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.

About the instructor

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.

The Course In a Nutshell - Three Objects, Three Trees

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.

Course Layout

Homework - Objects and Trees - Between Session One and Session Two

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.

Roles in The Project Collaboration Exercise

To keep focused on git (as opposed to Github), we will not be using any Github workflow operations apart from the fork operation.

  1. Team Lead - Fork this repo and invite the rest of the team as collaborators to your fork.
  2. Each Member - git clone your team lead’s fork (NOT walquis/tags!) to your local machine.
  3. Whole Team - Take a look at the commits along your chosen MILD or SPICY path and agree as a team how you’ll divide each task. Feel free to invent your own tasks! See Common Git Workflows for guidance.

References

Most of these are from Git-Scm