# Git and GitHub for Product People

> Stop feeling lost in engineering conversations. Learn to read a repository, review a pull request and follow a change from branch to release, all in the GitHub web interface, with no terminal.

- Source: https://productovi.com/courses/git-for-product
- Free, no sign-up needed to read.

## Modules

### Module 1. Git in plain words

Why teams keep a full history of their project, what a repository and a commit are, and how to read that history on GitHub: messages, diffs and blame.

- [Why teams keep history: version control without fear](https://productovi.com/courses/git-for-product/why-teams-keep-history.md): What version control is, Git vs GitHub and how the two differ, and why looking around a repository can't break anything.
- [Repository and commits: reading a GitHub repo page](https://productovi.com/courses/git-for-product/reading-a-repository-page.md): What a repository in GitHub is, its page from top to bottom, what a single commit tells you, and commit message best practices.
- [Reading history: messages, diffs and blame](https://productovi.com/courses/git-for-product/reading-history-diffs-and-blame.md): How to open a file's history, read a diff line by line and use blame to trace any line back to its commit, pull request and issue.

### Module 2. Branches and merges

Branches as parallel versions of the project, the three ways GitHub merges them (merge commit, squash, rebase) and what a merge conflict is.

- [Git branches: parallel versions of the project](https://productovi.com/courses/git-for-product/branches.md): What a Git branch is, why work happens on short-lived branches next to main, and how to read branches on GitHub: the branch selector, ahead and behind, stale branches, naming conventions and graphs with several lanes.
- [Merging on GitHub: merge commit, squash and merge, rebase](https://productovi.com/courses/git-for-product/merging.md): What merging does, the three options behind GitHub's merge button (merge commit, squash and merge, rebase and merge) and what each leaves in the history, a fast-forward merge in plain words, and how to check whether a change is really in main.
- [Merge conflicts on GitHub: why they happen and what to do](https://productovi.com/courses/git-for-product/merge-conflicts.md): What a merge conflict on GitHub is and why two branches can clash on the same line, what "This branch has conflicts that must be resolved" means, how to read conflict markers and resolve a simple conflict in the browser, and why choosing the right text is a product decision.

### Module 3. Pull requests

A pull request tab by tab, reviewing one as a PM with comments, suggestions and approvals, and what every GitHub icon and colour means.

- [What is a pull request? Anatomy of a PR page](https://productovi.com/courses/git-for-product/pull-request-anatomy.md): What a pull request is, read top to bottom: base and compare branches, draft and ready, the four tabs, the description and a pull request template, reviewers and labels, linked issues, checks and the merge box.
- [Approve a pull request as a PM: comments and suggestions](https://productovi.com/courses/git-for-product/reviewing-as-a-pm.md): What a product person checks in a pull request and what to leave to engineers, how to comment on a line, suggest changes with the exact wording, decide when to approve a pull request or request changes, and write review comments people are glad to get.
- [Icons, colours and checks: what every GitHub state means](https://productovi.com/courses/git-for-product/icons-and-colours.md): Read pull request status, issues, GitHub checks, reviews, labels and the merge box at a glance: what every icon and colour means, merged vs closed, and how to tell states apart by shape and text, not colour alone.

### Module 4. Team workflows

GitHub flow with small branches and fast merges, git flow with develop, release and hotfix branches, and how releases get tags, versions and changelogs.

- [GitHub flow: small branches, fast merges](https://productovi.com/courses/git-for-product/github-flow.md): The loop most product teams work in: branch from main, pull request, review and checks, merge, deploy. Why small, short-lived branches are safer, what "merged" and "deployed" mean, how feature flags let unfinished work ship hidden, and how to read a feature's progress from the pull request list.
- [Git flow: develop, release and hotfix branches](https://productovi.com/courses/git-for-product/git-flow.md): The release-oriented branching model: long-lived main and develop, feature branches, a release branch for each version, hotfix branches, and tags on main. When it fits (app store releases, several supported versions), why many web teams moved to GitHub flow or trunk-based development, and how to recognise each model from a branch list.
- [GitHub releases and versions: tags, SemVer, changelogs](https://productovi.com/courses/git-for-product/releases-and-versions.md): What a git tag is, how to read a version number like v1.4.1 (SemVer in plain words), how GitHub releases and generated release notes work, how release notes differ from a changelog, how to check whether a fix is in a version, and why merged, released and live for every user can be three different moments.

### Module 5. GitHub for product work

Issues, labels and milestones, project boards that track a feature to release, and your first change in the browser, plus how to undo it.

- [GitHub issues: bug reports, templates, labels and milestones](https://productovi.com/courses/git-for-product/issues-labels-milestones.md): Turn a one-line request into GitHub issues the team can act on: how to write a bug report with steps to reproduce, feature requests with acceptance criteria, a GitHub issue template, labels, assignees, sub-issues and a milestone with a due date. Plus how closing keywords and mentions link pull requests to issues, and what each issue state tells a PM.
- [GitHub Projects: project boards from issue to release](https://productovi.com/courses/git-for-product/project-boards.md): GitHub project management for product people: board, table and roadmap layouts in GitHub Projects, the status field and custom fields, built-in workflows that move cards, and how to follow a feature from issue to pull request, merge, release and feature flag. Why "Done" on a board doesn't always mean customers can use it, and what to show the CEO.
- [Your first change in the browser, and how to revert it](https://productovi.com/courses/git-for-product/first-change-in-the-browser.md): Make a small change entirely in the GitHub web UI: find the file, edit it in the GitHub web editor, commit to a new branch because main is protected, open a pull request, pass checks and review, merge and deploy. Then undo a merged change with GitHub's Revert button, learn when to revert and when to fix forward, and what a PM should and shouldn't edit.
