7.3 Gists, Wikis, and GitHub Pages

Key Takeaways

  • Every gist is a Git repository you can fork, clone, and inspect with full commit history; gists are public or secret, and a secret gist is not private—anyone with the URL can view it.
  • You cannot convert a public gist to secret; a secret gist can be made public by editing its visibility.
  • A repository wiki is long-form project documentation (how to use the project, design notes) sitting beside a README; wikis on private repositories are a paid-plan feature, while public repositories include wikis on GitHub Free.
  • GitHub Pages is static hosting (HTML, CSS, and JavaScript, optionally built with Jekyll or Actions) published from a repository; public-repo Pages are included with GitHub Free.
  • Privately published Pages—readable only by people with repository read access—require an organization on GitHub Enterprise Cloud; publishing from a private repository without that control still puts a public site on the internet.
Last updated: August 2026

Why gists, wikis, and Pages appear together on GH-900

Domain 3.4 is a single bullet: describe Gists, Wikis, and GitHub Pages. The exam is not asking you to design a docs site. It is asking you to pick the right GitHub surface when a scenario says "share a snippet," "write a user guide next to the code," or "publish a static website from this repository." Mix them up and you will also miss plan limits: secret is not private, wikis on private repos are a Pro/Team/Enterprise feature, and private Pages need an organization on GitHub Enterprise Cloud.

SurfaceWhat it isTypical GH-900 use
GistA Git repository of one or more files at gist.github.comShare a snippet, note, or embed; not a full project
WikiA documentation section attached to a repositoryHow-to guides, design notes, extra docs beyond the README
GitHub PagesStatic site hosting from a repositoryProject, user, or organization website

Gists: Git repositories for sharing snippets

GitHub's Creating gists page is the source. Gists are a simple way to share snippets. Every gist is a Git repository, which means you can fork and clone it, view full commit history with diffs, download a ZIP, and embed it (including a single file with ?file=FILENAME). Signed-in gists attach to your account at gist.github.com. You can pin gists on your profile. You receive notifications when you author a gist, are mentioned, or click Subscribe.

There are exactly two visibilities:

Public gists appear in Discover, are searchable, and are what you create when you want the world to find the snippet.

Secret gists do not appear in Discover and are not searchable unless you are logged in as the author. That is the entire protection. GitHub states it in plain language: secret gists are not private. Send the URL to a friend and they can see it. If someone else discovers the URL, they can see it too. If you need real access control, create a private repository instead. GitHub also scans secret gists on GitHub.com / Enterprise Cloud for partner secrets, which only makes sense if you remember that a "secret" gist is still reachable by URL.

Visibility conversion is one-way in the direction students always reverse:

  • After you create a gist, you cannot convert it from public to secret.
  • A secret gist can be made public by editing the gist and updating visibility.

Exam trap: "I will paste the production token into a secret gist so only I can see it." Anyone with the link can see it, it may be secret-scanned, and you can never lock it down later if you accidentally made it public.

Create gists on the gist home page, with GitHub CLI (gh gist create), or by dragging a file into the editor. Public versus secret is a create-time choice (Create public gist versus Create secret gist).

Wikis: long-form project documentation

Every repository can host a wiki—a section for documentation so others can use and contribute to the project. GitHub's About wikis comparison is exam-ready: a README quickly tells what the project can do; a wiki provides additional long-form content such as how to use it, how you designed it, or its core principles.

You write wiki pages in Markdown or other formats GitHub's Markup library renders (the file extension selects the converter: .md versus .textile). You can add math, diagrams, maps, and 3D models the same way as elsewhere on GitHub. Edit on github.com (Wiki tab → New Page / Edit, with a commit message) or locally. A wiki is itself a Git repository cloned from:

https://github.com/OWNER/REPOSITORY.wiki.git

You can branch while editing locally, but only the default branch is live. Page filename becomes the title; avoid \ / : * ? " < > | in titles.

Access follows the repository: a wiki on a public repository is public; a wiki on a private repository is visible only to people who can access the repository. By default only people with write access can edit. On a public repository you can deselect Restrict editing to collaborators only so anyone with a GitHub.com account can contribute.

Plan limit (private repos): GitHub lists wikis among the advanced tools that GitHub Pro, GitHub Team, and GitHub Enterprise add for private repositories. GitHub Free includes the full feature set on public repositories, so a public-repo wiki is available on Free. A private-repo wiki is a paid-plan feature—the "often paid on private" fact GH-900 wants. Do not promise a Free personal private repository the same wiki that a public open-source repo gets for free.

Two operational limits to remember at a high level: wikis have a soft limit of 5,000 files; beyond that some pages may be inaccessible, and GitHub recommends GitHub Pages for a larger set. Search engines index a wiki only if it has 500 or more stars and you prevent public editing. If you need search-engine indexing, GitHub tells you to use Pages on a public repository instead.

Loading diagram...
Pick gist, wiki, or GitHub Pages

GitHub Pages: static hosting from a repository

GitHub's What is GitHub Pages? definition: GitHub Pages is a static site hosting service that takes HTML, CSS, and JavaScript from a GitHub repository, optionally runs a build, and publishes a website. It is not a general-purpose app host; if the scenario needs a server-side API, Pages is the wrong product.

Two site types:

PropertyUser and organization sitesProject sites
Source repository nameMust be <owner>.github.ioAny project repository
How manyOne Pages site per accountOne Pages site per repository
Default URLhttps://<owner>.github.iohttps://<owner>.github.io/<repository>

You can attach a custom domain. Publishing sources are either a branch plus a folder (/ or /docs on any branch) or a GitHub Actions workflow (recommended when you need a non-Jekyll build). Pushing to the source branch publishes the source folder. GitHub warns that Pages sites are publicly available on the internet even if the repository is private, unless you use access control. That sentence is a classic trap: a private repo on Pro can still feed a public website.

Plan limits from GitHub's plans:

  • GitHub Free for personal accounts includes GitHub Pages in public repositories.
  • GitHub Pro, Team, and Enterprise add GitHub Pages to the private-repository toolkit (so you can publish from a private repo).
  • To publish a GitHub Pages site privately (only people with read access to the repository can load the site), you need an organization account, and that organization must use GitHub Enterprise Cloud. A personal Pro account cannot privately publish Pages by itself.

Privately published sites use a distinct *.pages.github.io subdomain with TLS, not github.com, so other repositories in the organization cannot share the origin. EMU enterprises publish Pages only as private and only to enterprise members. Access control applies to project sites from private or internal org repositories; you cannot privately publish the organization <org>.github.io site that way.

Changes can take up to 10 minutes to appear. Visitor IP addresses are logged for security even if the visitor is not signed in.

Exam scenarios and traps

  • "Share a 20-line repro" → gist. "Write a 12-page contributor guide next to the code" → wiki. "Publish the project's documentation website" → Pages.
  • Secret gist + URL = visible. Secret gist ≠ private repository.
  • You cannot take a public gist private/secret later. You can publish a secret gist.
  • README is the welcome mat; wiki is the handbook; Pages is the website. Do not say a wiki replaces Pages for SEO (500-star + no-public-edit indexing rule).
  • Private-repo wiki and publishing Pages from a private repo are paid-plan features; public repos get both on Free.
  • Private Pages (authz on the live site) = organization + Enterprise Cloud, not personal Pro.
  • A Pages site from a private repo is still a public website unless you turn on GHEC private visibility.
  • User/org site = exactly one <owner>.github.io repo. Project site = one per repo at /<repo>.
  • Wiki clone URL ends in .wiki.git; only the default branch is published.

If you can match snippet / handbook / website, recite the secret-gist warning, and state the Free-versus-GHEC Pages split, you have Domain 3.4.

Test Your Knowledge

A developer pastes an internal config file into a secret gist and sends the link to one teammate. Which statement is true?

A
B
C
D
Test Your Knowledge

Which statement about gist visibility and wikis is accurate?

A
B
C
D
Test Your Knowledge

A company wants a documentation website that only people with read access to a private repository can open in a browser. Which GitHub Pages setup is required?

A
B
C
D