Build the mental model
Open any repository on GitHub and you land on the Code tab, which shows the current files on the default branch plus a README rendered underneath — it is the closest thing to opening the folder on your computer, except it is always the latest pushed version.
Along the top sits a row of other tabs, and knowing what each one is for saves you from hunting later.
- Issues — bug reports, feature requests, and questions tracked as individual, discussable threads
- Pull requests — proposed changes (branches waiting to be reviewed and merged) before they join the Code tab
- Actions — automated workflows, like tests or deployments, triggered by events such as a push or new pull request
- Releases — specific commits packaged as downloadable, versioned snapshots of the project
- Settings — repository-level configuration: access, branch protection, allowed merges
Two more pieces live inside the Code tab itself rather than as separate top-level tabs: a branch switcher showing every branch that exists remotely, and a commit history view listing every commit ever pushed, in order, each one clickable to see exactly what changed.
None of these require memorizing exact button positions — GitHub redesigns its interface periodically. What matters is the mental map: where history lives, where proposed changes live, where discussion lives, and where automation lives.
REPOSITORY MAP
--------------
REPOSITORY MAP (github.com/you/project)
------------------------------------------------------------
Code current files + README ("folder" view, latest)
Issues bug reports, feature requests, discussions
Pull requests branches proposed for review and merge
Actions automated workflows: tests, deploys, CI/CD
Releases versioned, downloadable snapshots
Settings access control, branch protection, config
Inside Code tab: [ branch switcher ] [ commit history ]Connect it to a real scenario
The bridge between your terminal and the web UI is the remote URL. Run git remote -v inside any cloned repository and you get back the exact address GitHub uses to identify that repository — paste the https:// version into a browser and you land directly on its Code tab.
Check the branch
Confirm which branch is showing — the default branch, usually main, unless you switch it.
Skim the files
Confirm the file list matches what you expect locally.
Check commit history
See whether anyone has pushed since your last pull.
Before contributing to someone else's repo
If the repository is unfamiliar, spend two minutes reading its Issues and Pull requests tabs before writing any code — they often reveal what is already being worked on and what conventions the maintainers expect.
Treating the repository page as a dashboard rather than just a file browser will save you from duplicated effort and awkward pull requests later in this chapter.
Try the working example
git init -q -b main
git remote add origin https://github.com/octocat/Hello-World.git
git remote -vgit remote -v prints the same URL twice — once for fetch, once for push:
origin https://github.com/octocat/Hello-World.git (fetch)
origin https://github.com/octocat/Hello-World.git (push)
Pasting the https:// URL into a browser opens that repository's Code tab directly.5-minute try-it
Run git remote -v on a repository you've cloned. Then open that URL in a browser and click through the Code, Issues, Pull Requests, and Actions tabs, noting what each one currently contains.
One important caution
Confusing an Issue with a Pull Request — an Issue is just a discussion thread with no code change, while only a Pull Request represents an actual branch
Ignoring the Settings tab — branch protection rules are configured only there, and they guard against accidental bad pushes
GitHub Docs: Navigating code on GitHub — Git & GitHub