GitHub & Git Terms Glossary

This glossary defines the git and GitHub terminology you might run into while trying to download a folder from a repository — things like tree URLs, blobs, and sparse-checkout — in plain language, without assuming you already know how git works.

Repository (repo)
A repository, or repo, is the project's full collection of files together with the complete history of every change ever committed to them. It's the top-level container that GitHub, GitLab, and Bitbucket all host, and the thing GitHubFolder reads a single folder out of.
Branch
A branch is a named, independent line of development within a repository. It lets changes be made and committed without affecting other branches until they're merged, and a repo can have any number of branches at once — which is why folder URLs always include a branch name.
Tree
In git's internal data model, a tree is an object representing a directory listing — the names, modes, and object references of the files and subfolders it contains. GitHub also borrows the word for its URL pattern /tree/{branch}/{path}, exactly what shows in your address bar when browsing a folder, and the pattern GitHubFolder parses to know what to fetch.
Blob
A blob (binary large object) is the git object that stores a single file's raw content. It holds no filename, path, or metadata — just the data itself — which is why identical file content appearing in two places in a repo's history is stored once, not twice.
Commit SHA
A commit SHA is the unique 40-character hexadecimal hash (often abbreviated to the first 7 characters) that identifies one specific commit — a single snapshot of the entire repository at that point in time. No two different commits ever share a SHA.
Default branch
The default branch is the branch GitHub, GitLab, or Bitbucket shows automatically when you open a repository without specifying one — commonly named main or master, though a maintainer can rename it to anything they choose.
Sparse-checkout
Sparse-checkout is a git feature that lets you check out only specific subfolders of a repository into your working directory, instead of the entire tree. It's the closest built-in git equivalent to downloading a single folder — see the full sparse-checkout guide for the exact commands.
Raw file (raw.githubusercontent.com)
A raw file URL is the unauthenticated, direct-content address GitHub serves a file's exact bytes from — no HTML page, navigation, or syntax highlighting wrapped around it. GitHubFolder fetches files from these raw endpoints to assemble your ZIP.
Fork
A fork is a personal copy of someone else's repository created under your own account. It shares history with the original at the moment of forking but can then diverge, letting you experiment or propose changes without touching the source repo.
Rate limit
A rate limit is the cap a host like GitHub places on how many API requests a given IP address or authenticated account can make within a time window. Once it's hit, further requests are refused until the window resets, which is why GitHubFolder falls back to a token pool automatically.
Personal access token (PAT)
A personal access token is a credential you generate in your account settings and use instead of a password to authenticate git or API requests made on your behalf, typically with a narrower, revocable set of permissions than a full login.
Clone
Cloning is the act of downloading a full copy of a repository, including its entire commit history, onto your local machine using the git command-line tool — as opposed to downloading just a single folder or file the way GitHubFolder does.
Submodule
A git submodule is a reference inside one repository that points to a specific commit in another repository, letting a project embed and track an external repo as a nested dependency rather than copying its files in directly.