Git workshop
Table of Contents
Why to participate?
The workshop is held offline and aimed at putting hands on
practical work to support participants’ learnings.
Participants are required to have learned Linux CLI and Git skills
from this course modules to enroll in the workshop.
Workshop targets
Get a hands-on experience with:
- using proper git workflow
- submitting code changes by means of pull requests
- conducting code review
- approving changes and requesting changes
- resolving code conflicts
Secondary skills:
- updating feature branches from remotes and base branches
- mastering rebasing and back-up branches
- squashing commits
What to know to enroll?
- Linux CLI basics: navigating across file system, files manipulations,
using command history
- Basic MarkDown syntax
- Git basics:
init, clone, add, commit, checkout, branch, merge, push, pull
- Git collaboration essentials: working with remotes, forking,
working with pull requests
Feel free refreshing any knowledge of the above by revisiting the course
modules.
Having workspace properly set up
- CLI editor (nano is a good choice, however any you feel comfortable with
will do)
- Git Credentials Manager installed and set up
(to save time when pushing changes)
- Command prompt tuned up for use with Git
- Git CLI completion setup
- Global
.gitignore
in your user home directory
(with at least IDE specific directories listed)
Some of the items above are covered by the Udacity Version Control with Git
course from Git Basics module:
Mac/Linux Setup,
Windows Setup.
Developer’s Environment: Git
project offers a comprehensive guidance to setting up comfortable
developer’s Git environment.
How to enroll?
Easy.
- Make sure you know the theory and have some practice with
git
. Basically, you
are expected to meet the requirements above.
- Join related Kottans Git chat on Telegram,
say ‘Hello’ and tell that you feel ready for the workshop.
Model workshop plan
Briefing
- Get introduced to each other
- Workshop targets
- Check dev environment
- Agree on Git flow conventions, branch naming and commit messaging
- Form sub-teams for shorter mutual code review cycle
Exercise 1. Mess
- Each contributor adds changes to a personalized file
via personalized branch and opens a PR
- PRs merged into base branch
- Observe history mess
Exercise 2. Easy and Nice
- Each contributor adds changes to personalized files
via personalized branch (three times: to file 1, to file 2,
to file 1 again)
- Leader introduces changes
- Each contributor in a round-robin:
- updates their branch using rebase strategy
- reorders and squashes their own commits
- opens a PR
- waits for a peer to request changes
- updates per request
- waits for a peer to approve changes
- gets PR merge-squashed onto the base branch
Exercise 3. Oh, no! My code is better
- Each contributor adds changes to a shared file
via personalized branch
- Leader introduces changes to the shared file
- Each contributor in a round-robin:
- updates their branch using rebase strategy
- resolves a conflict
- opens a PR
- waits for a peer to approve changes
- gets PR merge-squashed onto the base branch
Retrospection
- Participants’ reflections
- Feedback collection, stars and sparkles
- FOSS contribution opportunities + Hacktoberfest/Swag
Watch one of the past workshops footage (narrated in Russian).
Git Workshop - Oleksiy Rudenko
Kottans git course sandbox
Course contents