Utility · sources and further reading
Resources
Everything this hub teaches is checked against the documents below. Same rule as every week: when a tutorial found in a search disagrees with these, these win.
Official documents
| Document | Use it for | Licence |
|---|---|---|
| Pro Git (Chacon & Straub) | The definitive free book; chapters 1 to 3 cover this entire hub with more depth | CC BY-NC-SA 3.0 |
| Git reference documentation | The manual page of every command and option; what git help <command> shows | Project documentation |
| Git downloads | Installers for Windows, macOS and Linux | Official distribution |
| GitHub Docs: Get started | Accounts, repositories, collaborators, and the web interface, with current screenshots | GitHub Docs (CC BY 4.0) |
| Writing and formatting on GitHub | The Markdown that Assignment 1's README needs | GitHub Docs (CC BY 4.0) |
| Markdown Guide: basic syntax | The same Markdown, host-independent, on one page | Open reference site |
Background reading, matched to the stages
| Stage | Read this for the ideas behind it |
|---|---|
| Why version control | Pro Git: About version control; Atlassian's What is version control? |
| The four areas | Pro Git: What is Git?, the three local states in the book's own words |
| The daily cycle | Pro Git: Recording changes; Atlassian's Saving changes |
| Remotes and pushing | Pro Git: Working with remotes; GitHub Docs' Get started path |
| Conflicts and merging | Atlassian's Merge conflicts guide; Oh Shit, Git!?! for when a command went sideways |
Reading order for a beginner: this hub first, then the linked Pro Git sections, then Atlassian when you want a second telling with different pictures.
Practice playgrounds
- Learn Git Branching: the classic interactive sandbox; you type real commands and watch the commit graph respond. Start with the "Introduction Sequence"; the branching levels will carry you well past this course.
- Oh My Git!: an open-source game that draws your repository as a live board; a gentler on-ramp if the sandbox feels abstract.
- GitHub Skills: free interactive courses that run inside real repositories on your own account, including "Introduction to GitHub" (this week's homework), Markdown, and pull requests (useful before the term project).
About graphical clients
Point-and-click Git clients exist, notably GitHub Desktop, and they are legitimate tools. This course still teaches the command line first, deliberately: the commands are identical on the lab PC, your laptop and the Raspberry Pi (where there is no desktop client over SSH), the error messages you will search for are the command-line ones, and every GUI is a skin over these same operations. Once the commands make sense, adopt any client you like at home; you will understand what its buttons do.
Glossary
| Term | Meaning |
|---|---|
| Version control system | Software that records the history of a folder so versions can be compared, restored and merged. |
| Repository (repo) | A folder tracked by Git; its history lives in the hidden .git directory. |
| Working directory | The visible files as they currently are on disk. |
| Staging area (index) | The set of changes selected, via git add, for the next commit. |
| Commit | A permanent snapshot with author, date, message and a link to its parent. |
| HEAD | Git's name for "where you currently stand" in history, normally the tip of your branch. |
| Branch / main | A movable pointer to a line of commits; main is the default branch's conventional name. |
| Merge | Combining another line of commits into your current branch. |
| Merge conflict | Git's pause when both sides changed the same lines; resolved by editing, add, commit. |
| Remote / origin | A copy of the repository elsewhere; origin is the conventional name of yours on GitHub. |
| Clone / push / pull / fetch | Download a repository / upload your commits / download-and-merge others' commits / download without merging. |
| README.md / Markdown | The rendered front page of a repository / the plain-text formatting language it is written in. |
| .gitignore | A committed file listing patterns Git should leave untracked. |
| Pull request (PR) | GitHub's reviewed-merge mechanism: propose a branch, discuss the diff, merge on approval. |