This page covers all 36 objectives across the exam's seven domains, in Microsoft's order, plus 2 topics on GitHub billing and identity that sit outside the official outline. Each one opens with a summary; select Read the full explanation for the detail.

Official study guide ↗

Understand Git and GitHub basics

25–30% of exam

The heaviest domain is vocabulary and workflow: what version control is for, where Git ends and GitHub begins, and what repositories, commits, and branches are. It adds the GitHub account types, the GitHub flow, Markdown in issues and pull requests, and when to reach for GitHub Desktop or GitHub Mobile. Questions are mostly definitions and short scenarios asking which concept, account type, step, or client fits.

Version control fundamentals

Why version control matters

ObjectiveDescribe the purpose and benefits of version control

A version control system records every change to a set of files, so a team can see history, recover old versions, and work in parallel.

Read the full explanationHide the full explanation

A version control system (VCS) tracks changes to a collection of files. Its two goals are to let you get back any earlier version of a file or the whole project, and to let several people work on the same project, even the same files, at the same time without getting in each other's way. It isn't only for software: Learn mentions books and online tutorials too.

With a VCS you can see every change, when it was made, and who made it; attach a message to each change explaining why; retrieve past versions; create branches to try changes without affecting the main line of work, then merge the ones you keep; and tag a version, for example to mark a release.

Centralized systems such as CVS, Subversion (SVN), and Perforce keep the project's history on one server, which becomes a single point of failure. Git is distributed: every copy holds the complete history, so you can commit without a network connection and sync later, and a server outage doesn't lose the project.

Remember for the exam
  • "Who changed it and when", "restore an old version", "work in parallel" → the benefits of version control.
  • Branch = a separate line of work; tag = a label on one version.
  • Offline commits or no single point of failure → distributed (Git), not centralized (SVN).
Practice the 3 cards on this topic

Git compared with GitHub

ObjectiveExplain the difference between Git and GitHub

Git is the distributed version control system; GitHub is a cloud platform built on Git that adds collaboration, automation, and hosting.

Read the full explanationHide the full explanation

Git is a fast, scalable, free, and open-source distributed version control system. Its primary author is Linus Torvalds, who created Linux. Git runs on your computer: it tracks changes, keeps history, and manages branches, and it can push those branches to a remote repository.

GitHub is a cloud platform that uses Git at its core. It acts as the remote repository and adds a website, more command-line tools, and a workflow for people to work together. Features that come from GitHub rather than Git include issues, discussions, pull requests, notifications, labels, Actions, forks, projects, Copilot, and Codespaces.

You can use Git through its command line or through GUIs such as GitHub Desktop or Visual Studio Code. GUIs each implement only part of Git, while the command line exposes all of it and behaves the same on every operating system, which is why Learn recommends knowing it even if you prefer a GUI.

Remember for the exam
  • Git = the version control tool; GitHub = the hosted platform built on it.
  • Commits and branches are Git concepts; issues, pull requests, and Actions are GitHub features.
  • "All of Git's functionality" → the command line, not a GUI.
Practice the 3 cards on this topic

Repositories, commits, and branches

ObjectiveIdentify key Git concepts such as repositories, commits, and branches

A repository stores a project's history, a commit is a saved snapshot, and a branch is a named line of commits.

Read the full explanationHide the full explanation

The working tree is the set of folders and files you're working on. The repository (repo) is the data store, in a hidden .git folder at the top of the working tree, where Git keeps all history and metadata. A remote is a named reference to another repository; when you clone, Git creates one called origin that points to where you cloned from, and it's the default for git push and git pull.

A commit is a snapshot of your project. Git identifies each object by a hash of its contents, and a commit records the author, date, message, a reference to the snapshot, and its parent commits. You choose what goes into a commit by staging: git add puts changes in the staging area (the index), git commit saves them, git status shows what's modified, staged, or untracked, and git log lists earlier commits.

A branch is a named series of linked commits; its latest commit is its head, and HEAD names the head of the branch you have checked out. A new repository's default branch is called main on GitHub. Branches let people work independently and later merge into the default branch.

Remember for the exam
  • Stage with git add, save with git commit, inspect with git status and git log.
  • origin = the remote you cloned from; HEAD = your current branch's latest commit.
  • A file Git doesn't know about yet is untracked.
Practice the 3 cards on this topic

Working with GitHub

Personal, organization, and enterprise accounts

ObjectiveDescribe GitHub accounts, organizations, and enterprise options

People sign in to personal accounts; organizations are shared accounts for collaboration; enterprise accounts manage many organizations centrally.

Read the full explanationHide the full explanation

Every person signs in to a personal account (GitHub Docs now calls it a user account). It's your identity, with a username and profile, and every action you take, such as opening an issue, is attributed to it. Personal accounts use GitHub Free or GitHub Pro and can own unlimited public and private repositories; on Free, private repositories have a limited feature set. GitHub Docs also describes managed user accounts, which an enterprise creates for you on GitHub Enterprise Cloud.

An organization is a shared account where many people collaborate across many projects. Like a personal account it can own repositories, packages, and projects, but nobody signs in to it: people sign in to their own accounts, and one person can belong to many organizations. Members get roles with different levels of access, and only organization owners and security managers manage the organization's settings.

An enterprise account lets administrators manage policies and billing for multiple organizations in one place, and each enterprise policy controls the options available to its organizations. GitHub Enterprise comes as Enterprise Server (self-hosted) or Enterprise Cloud (hosted by GitHub). Enterprise Cloud can use Enterprise Managed Users, where the company's identity provider controls the accounts.

Remember for the exam
  • You can't sign in to an organization; you sign in to your own account.
  • Many organizations, one place for policy and billing → enterprise account.
  • Self-hosted → GitHub Enterprise Server; hosted by GitHub → Enterprise Cloud.
Practice the 3 cards on this topic

The GitHub flow

ObjectiveExplain the GitHub Flow for collaboration

A lightweight, branch-based workflow: branch, commit, open a pull request, review, merge, and delete the branch.

Read the full explanationHide the full explanation

The GitHub flow is a simple, branch-based way to make and share changes safely. Create a branch so your work doesn't affect the default branch; make and commit changes on it; open a pull request to ask for feedback; respond to review comments with more commits; merge the pull request once it's approved; and delete the branch so nobody keeps using an outdated one. GitHub Docs notes it suits everyone, not just developers: GitHub uses it for its site policy, documentation, and roadmap.

A pull request signals that a branch's commits are ready to merge into another branch. Reviewers comment, suggest changes, and approve. If you want feedback before the work is ready, open a draft pull request. Linking an issue with a keyword closes the issue automatically when the pull request merges, and branch protection can block a merge until requirements such as approving reviews are met.

Git flow is a heavier alternative for release-driven teams. It keeps long-lived master and develop branches and adds feature, release, and hotfix branches. It fits scheduled, versioned releases and teams that maintain several production versions; GitHub flow fits continuous delivery. Trunk-based development is another common model.

Remember for the exam
  • Order: branch → commit → pull request → review → merge → delete branch.
  • Not ready for review yet → draft pull request.
  • Release and hotfix branches → Git flow; lightweight, continuous delivery → GitHub flow.
Practice the 3 cards on this topic

Markdown in issues and pull requests

ObjectiveIdentify uses of Markdown for clear communication in issues and pull requests

GitHub-Flavored Markdown formats text, links issues and commits, mentions people, and tracks tasks in issues, pull requests, and discussions.

Read the full explanationHide the full explanation

Markdown is a lightweight markup language that gives you formatting without writing HTML. One asterisk or underscore around text makes it italic and two make it bold; # through ###### make headings 1 to 6; > starts a blockquote; numbers or dashes make lists; pipes and dashes build tables; and backticks mark code, with three backticks for a fenced block that can name a language for syntax highlighting. A backslash shows a literal asterisk or underscore.

GitHub-Flavored Markdown (GFM) adds GitHub features. #42 links issue or pull request 42 in the same repository, GH-42 does the same, and owner/repo#42 links one in another repository; GitHub shortens pasted issue and commit URLs automatically. Pasting a commit's SHA links the commit. An @mention of a username or team notifies them.

Task lists (- [ ] and - [x]) track progress in an issue or pull request. Slash commands save typing in issue, pull request, and discussion comments: /code, /details, /saved-replies, /table, /tasklist (issue descriptions only), and /template.

Remember for the exam
  • #42 = same repo; owner/repo#42 = another repo.
  • Notify someone → @mention; track steps → task list.
  • /saved-replies inserts one of your saved replies.
Practice the 3 cards on this topic

GitHub Desktop and GitHub Mobile

ObjectiveRecognize when to use GitHub Desktop and GitHub Mobile

GitHub Desktop is a GUI for local Git work on Windows and macOS; GitHub Mobile is for triage, review, and sign-in security on iOS and Android.

Read the full explanationHide the full explanation

GitHub Desktop is an open-source app for Windows and macOS that streamlines your Git workflow without the command line. You add or clone repositories, pick which changes go into a commit, add co-authors, check out branches from pull requests, view CI status, and compare changed images visually.

GitHub Mobile, for iOS and Android, is for quick, high-impact work away from your desk. You manage and triage notifications, read and review issues and pull requests, edit files in pull requests, search for and browse users, repositories, and organizations, get push notifications when someone mentions you, secure your account with two-factor authentication, and verify sign-ins from unrecognized devices. Current GitHub Docs add searching code in a repository and Copilot Chat.

Choose by the job: working with files on your own computer (cloning, committing) points to GitHub Desktop or the command line; triage, review, and approvals on the go point to GitHub Mobile; anything else works on github.com in a browser.

Remember for the exam
  • Local commits without the command line → GitHub Desktop (Windows, macOS).
  • Notifications, reviews, and 2FA on a phone → GitHub Mobile (iOS, Android).
  • Compare changed images before committing → GitHub Desktop.
Practice the 3 cards on this topic

Work with GitHub repositories

10–15% of exam

This domain is the repository itself: the special files GitHub recognizes, creating repositories from templates, working with branches and files, and the insight pages that show who's contributing and what the project depends on. Questions ask which file, setting, or page answers a need.

Repository management

Key repository files

ObjectiveDescribe the structure and key files of a GitHub repository (README, LICENSE, CONTRIBUTING, CODEOWNERS, SECURITY)

README welcomes, LICENSE grants reuse rights, CONTRIBUTING guides contributors, CODEOWNERS assigns reviewers, and SECURITY.md explains how to report vulnerabilities.

Read the full explanationHide the full explanation

A README is usually the first thing a visitor sees: what the project does, why it's useful, how to get started, where to get help, and who maintains it. GitHub surfaces a README from the .github, root, or docs folder, in that order. Long documentation belongs in a wiki instead.

A LICENSE file states what others may do with the code. Without one, default copyright applies and nobody else may reproduce or build on the work, so a project without a license isn't open source even if the repository is public. A CONTRIBUTING file explains how to contribute; GitHub links to it when someone opens an issue or pull request, and shows a Contributing tab for CONTRIBUTING.md. A CODE_OF_CONDUCT sets community ground rules.

A CODEOWNERS file maps paths to people or teams, who are then requested automatically to review pull requests that change those files. Their approval becomes mandatory only when a branch protection rule requires code owner review. A SECURITY.md file tells people how to report a vulnerability responsibly. CODEOWNERS, like CONTRIBUTING, can live in the root, docs, or .github folder.

Remember for the exam
  • Who reviews changes to a path → CODEOWNERS; how to report a vulnerability → SECURITY.md.
  • No license = not open source, even when public.
  • How to contribute → CONTRIBUTING; ground rules → CODE_OF_CONDUCT.
Practice the 3 cards on this topic

Templates and branches

ObjectiveIdentify how to create, organize, and maintain repositories using templates and branches.

Template repositories give new projects a standard starting structure; branches isolate work, with the default branch as the base.

Read the full explanationHide the full explanation

Anyone with admin permissions can mark a repository as a template in its settings. Anyone with read access can then select Use this template to create a new repository with the same directory structure and files from the default branch, or from all branches if they select Include all branches. Branches created this way have unrelated histories, so you can't open pull requests between them.

A template differs from a fork. A repository from a template starts with a single commit, its commits appear on your contribution graph, and it's meant to start a new project. A fork copies the parent's entire history and is often a temporary way to contribute changes back.

Branches let you develop features, fix bugs, or experiment in isolation. You always branch from an existing branch, and creating one needs write access. The default branch is the first branch GitHub creates, named main by default: visitors see it, clones check it out, and it's the base for new pull requests unless you choose otherwise. Protected branches can require reviews or status checks before merging.

Remember for the exam
  • Standard starting structure for new projects → template repository.
  • Template = new project, single commit; fork = full history, contribute back.
  • The default branch is the base for new pull requests.
Practice the 3 cards on this topic

Adding and managing files

ObjectiveExplain how to add and manage files within a repository

You can create, upload, edit, rename, move, and delete files on github.com or with Git, within size limits.

Read the full explanationHide the full explanation

On github.com, anyone with write access can create, upload, edit, rename, move, and delete files without installing Git. Each change is a commit with a message. When you're on the default branch, GitHub offers to commit to a new branch and open a pull request, which is usually the better choice. You can't edit or upload files directly in a protected branch on GitHub.

Browser uploads take up to 100 files at once, each up to 25 MiB. The command line accepts files up to 100 MiB. Anything larger needs Git Large File Storage (Git LFS). Push protection can block an upload that contains a supported secret, such as a token.

On the command line you copy the file into your local clone, then git add, git commit, and git push. Never add passwords or API keys to a repository; a .gitignore file tells Git which paths to leave out of commits.

Remember for the exam
  • Browser: 25 MiB per file; command line: 100 MiB; larger → Git LFS.
  • Rename, move, or delete without Git → do it on github.com.
  • Changes on the default branch → commit to a new branch and open a pull request.
Practice the 2 cards on this topic

Insights, stars, feature previews, and dependencies

ObjectiveDescribe repository insights, stars, feature previews, repository metrics dashboards, and dependency insights for improved visibility

The Insights tab charts activity and usage, the dependency graph shows what a repository depends on, stars bookmark projects, and feature preview turns on preview features.

Read the full explanationHide the full explanation

A repository's Insights tab holds its graphs: Pulse (recent pull requests, issues, and commit activity, last seven days by default), Contributors, Traffic (clones, visitors, referring sites), Commits, Code frequency, Network, and Forks. Maintainers use them to see who uses the repository and why. With GitHub Free, several graphs are for public repositories only; GitHub Pro, Team, and Enterprise Cloud show them for private repositories too.

The dependency graph summarizes a repository's manifest and lock files: its dependencies (with version, license, and known vulnerabilities) and, for public repositories, its dependents. At organization level, dependency insights shows vulnerabilities and licenses across the organization's dependencies; it needs GitHub Enterprise Cloud and GitHub Docs now lists it as in maintenance mode.

Starring a repository saves it to your stars page, thanks the maintainers, and tunes the content GitHub recommends; star counts feed GitHub's rankings and Explore. Feature preview, from your profile menu, lists features in public preview and lets you enable or disable each for your account. Public preview features are documented but carry no service level agreement or support obligations until they're generally available.

Remember for the exam
  • Who uses or contributes to the repository → Insights tab graphs.
  • Dependencies, licenses, and vulnerabilities → dependency graph.
  • Bookmark and thank → star; try preview features → feature preview.
Practice the 3 cards on this topic

Repository best practices

ObjectiveRecognize best practices for repository maintenance and collaboration

Give every repository a README, turn on the core security features, branch rather than fork for regular collaborators, and use Git LFS for large files.

Read the full explanationHide the full explanation

GitHub recommends a README for every repository, together with a license, contribution guidelines, and a code of conduct, so people know what to expect and how to contribute.

At a minimum, enable Dependabot alerts, secret scanning, push protection, and code scanning; all are free for public repositories. Consider a SECURITY.md file and private vulnerability reporting. Keep secrets out of commits: a .gitignore file helps, and you should assume anything ever committed has been exposed.

Regular collaborators should work in one repository with pull requests between branches, and protect important branches with required reviews and status checks. Forking suits outside contributors. Track large files with Git Large File Storage (Git LFS).

Remember for the exam
  • Team members → branches; outside contributors → forks.
  • Block secrets before they land → push protection.
  • Every repository should have a README.
Practice the 2 cards on this topic

Collaborate using GitHub

10–15% of exam

This domain is how people work together on GitHub: issues, pull requests, and discussions and when to use each, linking pull requests to issues, templates and filters, notifications, and the lighter ways to share information with gists, wikis, and GitHub Pages. Questions describe a team's need and ask which feature fits.

Collaboration tools

Issues, pull requests, and discussions

ObjectiveDescribe how to use issues, pull requests, and discussions for collaboration

Issues track work, pull requests propose and review changes, and discussions host open-ended conversation.

Read the full explanationHide the full explanation

Issues track ideas, feedback, tasks, and bugs. You can open one from the Issues tab, a task-list item, a project note, a comment, a specific line of code, or a URL query. Maintainers can assign it, add it to a project, set a milestone, and apply labels. Issue templates and issue forms keep reports consistent.

A pull request brings together a title and description, the proposed commits, a comment thread, code reviews with suggested changes, and status checks from automated tests. Pushing new commits updates it automatically, and it stays open until maintainers merge it or close it. A draft pull request asks for early guidance.

GitHub Discussions is a forum for conversations that aren't tied to code: announcements, ideas, polls, Q&A, and show-and-tell, organized in categories that maintainers define. Someone with admin permissions must enable it in the repository's Settings first. You can mark an answer in a Q&A discussion, pin important discussions, and reference a discussion in a new issue when it turns into work.

Remember for the exam
  • A bug or task to track → issue; a conversation or poll → discussion.
  • Discussions need to be enabled first; issues are on by default.
  • New commits on the branch update the pull request automatically.
Practice the 3 cards on this topic

Linking, templates, filters, and assignments

ObjectiveExplain how to link pull requests to issues and manage templates, filters, and assignments

Closing keywords link pull requests to issues, templates standardize new issues, filters find work, and assignees show who owns it.

Read the full explanationHide the full explanation

Link a pull request to an issue with a closing keyword in the description: close, closes, closed, fix, fixes, fixed, resolve, resolves, or resolved, followed by #number (or owner/repo#number for another repository). When the pull request merges into the default branch, the issue closes; keywords are ignored if it targets another branch. People with write access can also link up to ten issues manually from the pull request sidebar.

Issue templates and issue forms live in .github/ISSUE_TEMPLATE on the default branch. Markdown templates (.md) guide what people write; issue forms (.yml) add web form fields that can be required. A pull request template prefills each new pull request's body. Use saved replies for routine responses after an issue is filed, and templates to collect details up front.

Filters such as is:open is:issue label:bug assignee:@me combine qualifiers; spaces mean AND, and you can use OR and parentheses. -linked:pr finds issues with no pull request, and milestone: filters by milestone. Anyone with write access can assign issues and pull requests, up to 10 assignees each.

Remember for the exam
  • Close an issue on merge → Fixes #57 in the pull request description, targeting the default branch.
  • Required structured fields → issue form (.yml).
  • @me = the signed-in user in filters.
Practice the 3 cards on this topic

Notifications

ObjectiveIdentify the purpose of notifications and how to configure them for workflow management

Notifications report activity you're subscribed to; watch settings and delivery options control how much you get and where.

Read the full explanationHide the full explanation

Notifications are updates about activity you've subscribed to: a specific issue, pull request, or gist; all activity in a repository; GitHub Actions workflow status; or a repository's issues, pull requests, releases, security alerts, or discussions. You're subscribed automatically when you open, comment on, or are assigned to a thread, when you or your team are @mentioned, or when you change a thread's state. You also watch repositories you create.

Watch settings, from the Watch button on a repository, control volume: Watching sends all activity, Not watching (participating and @mentions) sends only what involves you, Ignore sends nothing, and Custom picks activity types such as releases or discussions. Unsubscribe from a single thread or unwatch a repository when it stops being relevant.

In your account's Notifications settings, choose where updates arrive: the web inbox, email, or GitHub Mobile push notifications. Triage in the inbox, which labels why each notification arrived. Search mentions: plus your username to find threads where you were @mentioned.

Remember for the exam
  • Only one kind of activity, such as releases → Custom watch.
  • Only what involves you → Not watching (participating and @mentions).
  • Delivery channels are set in account settings, not repository settings.
Practice the 3 cards on this topic

Gists, wikis, and GitHub Pages

ObjectiveDescribe how to use Gists, Wikis, and GitHub Pages to document and share information

Gists share snippets, wikis hold long-form project documentation, and GitHub Pages publishes a static website from a repository.

Read the full explanationHide the full explanation

A gist shares a code snippet, note, or small file without a full repository. Every gist is a Git repository, so it has history and can be forked, cloned, and embedded. Public gists appear in Discover and search; secret gists don't, but anyone with the URL can see them. Never store secrets in a gist, and use a private repository when you need privacy. A public gist can't be made secret later.

Every repository has a wiki for long-form documentation such as how to use the project, how it was designed, and its principles, while the README stays short. In a private repository only people with access can read the wiki. By default only people with write access can edit it.

GitHub Pages hosts a static website (HTML, CSS, and JavaScript, optionally built from source) straight from a repository. Each account can have one user or organization site, from a repository named owner.github.io, and each repository one project site, at owner.github.io/repository by default. You can use a custom domain. Pages is the choice when content must be indexed by search engines.

Remember for the exam
  • Quick snippet without a repository → gist; secret ≠ private.
  • Long-form project docs → wiki; a public website → GitHub Pages.
  • One user or organization Pages site per account; one project site per repository.
Practice the 3 cards on this topic

Apply modern development practices

10–15% of exam

This domain covers GitHub's automation and AI tools at a recognition level: what GitHub Actions does, what GitHub Copilot offers and how its plans differ, and how Codespaces and the github.dev editor give you a development environment in the browser. Questions ask which tool or plan matches a scenario.

Automation and AI tools

GitHub Actions

ObjectiveDescribe the purpose and capabilities of GitHub Actions

GitHub Actions automates builds, tests, deployments, and repository chores with YAML workflows triggered by events, schedules, or a manual start.

Read the full explanationHide the full explanation

GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform. Workflows can build and test every pull request or deploy merged changes to production, and they go beyond DevOps: a workflow can label each new issue, for example.

A workflow is a YAML file in the repository's .github/workflows folder. It runs when an event happens in the repository (a push, a pull request, an issue), on a schedule, through the REST API, or manually. A repository can have many workflows.

A workflow contains jobs. Each job runs on its own runner, a virtual machine or container, and contains steps that run in order and share data. A step runs a script or an action, a reusable extension. Jobs run in parallel unless one depends on another, and a matrix runs a job across several operating systems or versions. GitHub provides Linux, Windows, and macOS runners, or you can host your own.

Remember for the exam
  • Automate something when an issue or pull request is opened → GitHub Actions workflow.
  • Workflow → jobs → steps → scripts or actions.
  • Workflows live in .github/workflows.
Practice the 2 cards on this topic

GitHub Copilot: suggestions, agents, and models

ObjectiveIdentify how GitHub Copilot assists with AI-powered code suggestions, including Copilot agents, Agent Mode, and multi‑model support

Copilot suggests code as you type, answers questions in chat, works through tasks as an agent, and lets you choose among AI models.

Read the full explanationHide the full explanation

Inline suggestions appear as grayed-out text as you type; Tab accepts and Esc dismisses. A comment describing what you want also prompts a suggestion. Copilot Chat answers questions in natural language, inline chat (Ctrl+I or Cmd+I) works on the code at the cursor, and slash commands such as /explain and /tests are shortcuts. Copilot can also summarize pull requests and help with code review.

Agent mode, in Copilot Chat in VS Code, Visual Studio, JetBrains IDEs, Xcode, and Eclipse, takes a high-level task, decides which files to change, edits them, and proposes terminal commands, iterating until the task is done. You review edits and approve commands, and you can extend it with MCP servers. Copilot cloud agent works on GitHub instead: it researches the repository, makes changes in an ephemeral cloud environment, and prepares a pull request for review.

Copilot supports several AI models with different strengths, such as low latency, complex reasoning, or large context windows. You choose one in the model picker or select Auto, which routes each request by task complexity and availability. What you can choose depends on your plan, the client, and your administrators' policies, and models are added and retired over time. Copilot's output can be wrong, so review and test it.

Remember for the exam
  • Multi-step task in your IDE with you approving commands → agent mode.
  • Hand a task off to run on GitHub and return a pull request → Copilot cloud agent.
  • Let Copilot pick the model → Auto model selection.
Practice the 3 cards on this topic

Copilot plans for individuals, Business, and Enterprise

ObjectiveExplain the differences between GitHub Copilot for Individuals, Business, and Enterprise

Individual plans range from free to Max; Copilot Business adds central management for organizations; Copilot Enterprise is for GitHub Enterprise Cloud and adds more on top.

Read the full explanationHide the full explanation

For individuals, GitHub currently offers Copilot Free and Copilot Student (free, Student for verified students) and the paid Copilot Pro, Pro+, and Max, each with a larger monthly allowance of GitHub AI Credits. Copilot Free is only for people who don't get Copilot through an organization or enterprise, and verified teachers and maintainers of popular open-source projects may get Copilot Pro free. The exam outline groups these as "Copilot for Individuals".

Copilot Business is made for organizations and enterprises. It's billed per granted seat and gives administrators centralized management and policy control: which members get access, which features and models are available, and which files Copilot should ignore. Owners of organizations on GitHub Free or GitHub Team can buy it.

Copilot Enterprise is designed for enterprises on GitHub Enterprise Cloud. It includes everything in Copilot Business, a larger monthly pool of AI credits, and additional enterprise-grade capabilities. Copilot isn't included in GitHub plans by default and isn't currently available for GitHub Enterprise Server. Plan names and allowances change, so check GitHub Docs before the exam.

Remember for the exam
  • Organization needs central control over members' Copilot → Copilot Business.
  • GitHub Enterprise Cloud and everything in Business plus more → Copilot Enterprise.
  • Already covered by an organization's Copilot → can't use Copilot Free.
Practice the 3 cards on this topic

Codespaces and dev containers

ObjectiveDescribe GitHub Codespaces and how to set up, customize, and use dev containers

A codespace is a cloud development environment running in a dev container on a virtual machine, defined by a devcontainer.json file.

Read the full explanationHide the full explanation

GitHub Codespaces gives you a development environment in the cloud. Creating one assigns a virtual machine and storage, builds a container, connects you, and runs post-creation setup. You can create a codespace from a template, a branch, a pull request, or a commit, and open it in the browser, Visual Studio Code, or a JetBrains IDE. It has a terminal and the compute to build, run, and debug code.

The environment is a dev container: a Docker container configured as a full development environment. Its configuration lives in a devcontainer.json file, usually in a .devcontainer folder, often with a Dockerfile, and defines frameworks, tools, extensions, and port forwarding. Without one, Codespaces uses a default configuration. Put team-wide needs in devcontainer.json; personal preferences belong in dotfiles and Settings Sync. Rebuild the codespace to apply configuration changes.

You can personalize a codespace by renaming it, changing the machine type, shell, default editor, region, and timeout. By default a codespace stops after 30 minutes of inactivity, keeping your saved changes; only running codespaces incur compute charges. Inactive codespaces are deleted after 30 days by default, so commit and push your work.

Remember for the exam
  • Team-wide tools in every codespace → devcontainer.json.
  • Personal shell and editor settings → dotfiles and Settings Sync.
  • Default timeout: 30 minutes idle; default retention: 30 days.
Practice the 3 cards on this topic

The github.dev editor compared with Codespaces

ObjectiveExplain when to use the github.dev editor and how it differs from Codespaces

github.dev is a free, instant, browser-only editor with no compute; Codespaces adds a virtual machine with a terminal for building and running code.

Read the full explanationHide the full explanation

Press the period key (.) on any repository or pull request, or change github.com to github.dev in the URL, to open the github.dev editor. GitHub Docs now calls it VS Code for the Web. It's free, needs you to be signed in, and gives you VS Code search, syntax highlighting, and a source control view for editing and committing.

github.dev runs entirely in the browser. It doesn't clone the repository, and your changes stay in the browser's local storage until you commit. There's no compute: you can't build or run code or use a terminal, and only extensions that can run on the web are available.

Use github.dev for quick edits, reviews, and documentation fixes. Use Codespaces when you need to build, test, debug, or use a terminal; it takes a few minutes to start because it sets up a VM and container, and personal accounts get a free monthly quota. From github.dev, commit your changes and choose Continue Working On to move into a codespace.

Remember for the exam
  • Quick edit and commit, no setup → github.dev.
  • Run tests or use a terminal → Codespaces.
  • Open github.dev → press .
Practice the 2 cards on this topic

Manage projects with GitHub

5–10% of exam

This domain is planning and tracking work with GitHub Projects: layouts, fields, labels, milestones, built-in workflows, saved replies and assignees, and the insights charts that show progress. Questions ask which feature organizes or reports on the work.

Project tracking and organization

GitHub Projects and layouts

ObjectiveDescribe GitHub Projects and layout options

A project is a table, board, and roadmap of issues, pull requests, and draft issues that stays in sync with them.

Read the full explanationHide the full explanation

GitHub Projects is a planning and tracking tool at user or organization level. A project is built from the issues and pull requests you add, plus draft issues, and syncs both ways: change an item's information in the project and the issue or pull request reflects it. You can create a project from scratch or a template, from your profile, your organization, or a repository.

Each view of a project has one of three layouts. Table is a high-density spreadsheet you can group, sort, and filter. Board spreads items across columns, such as a Status field for a kanban board, and dragging an item between columns updates its field. Roadmap places items on a timeline using date and iteration fields, with markers for iterations and milestones.

Save views so the team can return to them. Projects can be public or private, and access can be granted to the organization, teams, members, or outside collaborators with read, write, or admin roles. Closing a project keeps its data; deleting it removes views, fields, insights, and draft issues.

Remember for the exam
  • Kanban → board; spreadsheet → table; timeline → roadmap.
  • Projects and issues sync both ways.
  • Close rather than delete to keep a project's data.
Practice the 2 cards on this topic

Fields, labels, milestones, and workflows

ObjectiveExplain how to configure projects, labels, milestones, and workflows

Custom fields and built-in workflows shape a project; labels categorize work and milestones group it toward a goal.

Read the full explanationHide the full explanation

Beyond built-in metadata such as assignees, labels, and milestones, a project can have custom fields: text, number, date, single select (such as Low, Medium, High priority), and iteration (such as weekly sprints with breaks). A project holds up to 50 fields. Group, sort, and filter views by any field.

Built-in workflows set fields automatically when items are added or changed. Two are on by default: closed issues and pull requests, and merged pull requests, get Status Done. You can turn on others, such as setting Status to Todo when an item is added, and auto-archive or auto-add items that match a filter. GitHub Actions and the GraphQL API give more control.

Labels categorize issues, pull requests, and discussions within one repository. Every new repository gets default labels such as bug, documentation, enhancement, good first issue, and help wanted, and anyone with write access can create more. A milestone groups issues and pull requests toward a goal like a release or sprint, with an optional due date, completion percentage, and counts of open and closed items.

Remember for the exam
  • Track priority or sprint on project items → custom field (single select or iteration).
  • Group work toward a release with a due date → milestone.
  • Set a status automatically → built-in workflow.
Practice the 2 cards on this topic

Saved replies and assignees

ObjectiveIdentify how to use saved replies and assignees to streamline communication

Saved replies reuse common responses; assignees show who owns each issue or pull request.

Read the full explanationHide the full explanation

A saved reply is a prewritten response you store in your personal settings (Settings, then Saved replies). When commenting on an issue or pull request, insert it from the comment box, or with the /saved-replies slash command, and edit it before posting. Saved replies keep routine answers fast and consistent. To collect the right information when an issue is opened, use an issue template instead.

Assignees show who's responsible for an issue or pull request. Add them from the item's sidebar, or select several items in the list and choose Assign. Anyone with write access can assign, and an item can have several assignees. Filter with assignee:@me to see your own work.

An @mention brings someone into a conversation and notifies them without making them responsible, and it helps identify who was involved long after an issue closes.

Remember for the exam
  • Same answer over and over → saved reply.
  • Who owns this work → assignee; who should look → @mention.
  • Collect details up front → issue template, not a saved reply.
Practice the 2 cards on this topic

Project insights

ObjectiveDescribe how project insights can be used to track progress and productivity

Insights for Projects builds current and historical charts from a project's items.

Read the full explanationHide the full explanation

Insights for Projects lets you view, create, and customize charts that use the project's items as data. You set the filters, chart type, and fields shown, and anyone who can view the project can see the charts.

Current charts show the state of the project now, such as how many items each person has or how many issues fall in each upcoming iteration. Filters narrow them to particular labels or assignees.

Historical charts show change over time. The default Burn up chart shows completed work against what's left, so you can see progress, trends, and bottlenecks. To build your own, set the X-axis to Time; states include Open, Completed, Closed pull requests, and Not planned. Insights doesn't track archived or deleted items.

Remember for the exam
  • Workload right now by person or iteration → current chart.
  • Progress over time → historical chart (Burn up).
  • Archived or deleted items don't count in insights.
Practice the 2 cards on this topic

Understand privacy, security, and administration

10–15% of exam

This domain is keeping accounts and code safe and organized: two-factor authentication and passkeys, repository and organization roles, Enterprise Managed Users and Copilot policies, repository visibility and branch protection, and organization teams and settings. Questions ask which role, setting, or control meets a requirement with the least access.

Security and access management

Two-factor authentication and passkeys

ObjectiveDescribe how to secure accounts with two-factor authentication (2FA) and passkeys

2FA adds a second proof of identity after the password; a passkey replaces both steps with phishing-resistant public-key sign-in.

Read the full explanationHide the full explanation

Two-factor authentication (2FA) means signing in with your password and then a second factor: a time-based code from an authenticator app, an SMS code, a security key such as a FIDO2 hardware key, Windows Hello, or Touch ID, or GitHub Mobile. Learn describes SMS as supported but less secure and not recommended as the main method. Save your recovery codes: if you lose your factors and recovery methods, GitHub Support can't restore the account. GitHub began requiring 2FA for people who contribute code on GitHub.com in 2023.

A passkey is a pair of cryptographic keys stored by an authenticator you control, such as a phone, a laptop, a password manager, or a security key. It satisfies both the password and 2FA requirements in a single step, never sends the secret to GitHub, and is bound to GitHub.com, so a lookalike phishing site can't use it. Synced passkeys follow you across devices that use the same service; device-bound passkeys stay on one authenticator. Keep a fallback 2FA method to avoid lockouts.

Organization owners can require 2FA for members, billing managers, and outside collaborators. With Enterprise Managed Users, admins can require it for the managed accounts.

Remember for the exam
  • One-step, phishing-resistant sign-in → passkey.
  • Lost device, no recovery codes → GitHub Support can't help.
  • Weakest second factor → SMS.
Practice the 3 cards on this topic

Repository and organization roles

ObjectiveIdentify access permissions and roles for repositories and organizations

Repository roles run from Read to Admin; organization roles include owner, member, moderator, billing manager, and security manager.

Read the full explanationHide the full explanation

Repository roles, from least to most access: Read (view and discuss), Triage (manage issues and pull requests without write access), Write (push to the project), Maintain (manage the repository without sensitive or destructive actions), and Admin (full access, including security settings and deleting the repository). GitHub Enterprise can add custom roles built on these.

Organization roles: owners have complete administrative access, and you should have at least two; members can create repositories and projects; moderators can block non-member contributors, set interaction limits, and hide comments; billing managers manage billing; security managers manage security alerts and settings across the organization and can read every repository. Outside collaborators get access to specific repositories without becoming members, which suits contractors and consultants.

Access can come from a direct collaborator role, team membership, and the organization's default permission. GitHub applies the highest of them. Follow least privilege: give the lowest role that does the job, and audit access in repository settings or the audit log.

Remember for the exam
  • Manage issues without pushing code → Triage.
  • Security team with least access → security manager.
  • Several sources of access → the highest one wins.
Practice the 3 cards on this topic

Enterprise Managed Users and Copilot policies

ObjectiveExplain the purpose of Enterprise Managed Users (EMUs) and organization-wide Copilot policy management

EMUs let a company's identity provider own its GitHub accounts; Copilot policies let enterprise and organization owners control features and models.

Read the full explanationHide the full explanation

With Enterprise Managed Users on GitHub Enterprise Cloud, an external identity provider (IdP) manages the lifecycle and authentication of users. The IdP provisions accounts, users must sign in through it, and it controls usernames, profile data, organization membership, and repository access. Managed user accounts can't create public content or collaborate outside the enterprise, and users can't change their profile name or email on GitHub. Partner IdPs include Microsoft Entra ID, Okta, and PingFederate.

Organization owners with Copilot Business or Copilot Enterprise manage Copilot in the organization's Settings, under Copilot. Policies controls which features are available and their privacy settings; Models controls which models beyond the basic ones members can use, which may add costs.

Enterprise owners can set Copilot policies too. When they choose a setting (enabled everywhere, disabled everywhere, or enabled for selected organizations), organization owners can't override it; organizations decide only the policies the enterprise leaves to them.

Remember for the exam
  • IdP creates and controls GitHub accounts → Enterprise Managed Users.
  • Control Copilot features and models for members → organization Settings, Copilot.
  • Enterprise policy set → organizations can't override it.
Practice the 3 cards on this topic

Repository visibility and branch protection

ObjectiveDescribe repository privacy options, visibility settings, and branch protection rules

Visibility decides who can see a repository; branch protection rules decide what must happen before changes reach important branches.

Read the full explanationHide the full explanation

Repositories are public (everyone on the internet), private (you, people you give access, and certain organization members), or internal (everyone in the enterprise, for organizations owned by an enterprise on GitHub Enterprise Cloud). Organization owners can always see every repository in their organization, and people with admin permissions can change visibility. Public repositories expose your code, so turn on security features and add a SECURITY.md file.

A branch protection rule applies to a specific branch, all branches, or a name pattern. By default it blocks force pushes and deletion. It can also require pull request reviews (including from code owners), passing status checks, resolved conversations, signed commits, linear history, a merge queue, or successful deployments, and it can lock the branch or restrict who can push.

Admins bypass the rule unless you apply it to them too. Only one branch protection rule applies to a branch at a time; rulesets can layer several. With required reviews, collaborators can change the protected branch only through an approved pull request.

Remember for the exam
  • Visible to the enterprise but not the public → internal.
  • Code owner must approve merges → branch protection with Require review from Code Owners.
  • Default protection: no force pushes, no deletion.
Practice the 3 cards on this topic

Organization settings, teams, and roles

ObjectiveRecognize how to manage organization settings, teams, and roles

Teams group members for access and mentions, team maintainers run teams, and owners set organization-wide defaults.

Read the full explanationHide the full explanation

Teams group organization members to match your company's structure. Owners and team maintainers grant a team access to repositories once for everyone in it, members can @mention a team or request its review, and a team can be a code owner. Teams are visible (seen by every member) or secret (seen only by their members and owners). Outside collaborators can't be on teams.

Nested teams reflect hierarchy: child teams inherit the parent team's repository access, and mentioning a parent notifies its child teams too. Give parent teams access that's safe for everyone below them and grant child teams more specific access.

Team maintainers manage a team without being organization owners: they change its name, description, and visibility, add and remove members, remove repository access, and manage code review assignment. Organization owners set default repository permissions for all members; Learn recommends default Read with more granted case by case, following least privilege.

Remember for the exam
  • Grant access to many people at once → team.
  • Manage one team without owner rights → team maintainer.
  • Child team inherits parent access.
Practice the 2 cards on this topic

Explore the GitHub community

5–10% of exam

This domain is GitHub as a community: why open source matters, how GitHub Sponsors and other features support it, following people and organizations, GitHub Marketplace, InnerSource inside companies, and when to fork or use a template. Questions ask which feature or practice fits a contributor's goal.

Open-source engagement

Open source and GitHub Sponsors

ObjectiveDescribe the benefits of open source and GitHub Sponsors

Open source lets anyone use, change, and share code, and GitHub Sponsors lets people pay the maintainers they rely on.

Read the full explanationHide the full explanation

Open-source software can be freely used, viewed, modified, and shared by anyone for any purpose. The idea is that sharing code produces better, more reliable software. Contributing builds your skills and portfolio and connects you with developers worldwide, and every kind of contribution counts, from code to documentation fixes. A project needs an open-source license to be open source.

Open source relies heavily on volunteer work. GitHub Sponsors lets you financially support developers and organizations with sponsored profiles, from your personal account or an organization, with one-time or monthly payments at tiers the maintainer sets. Sponsorships from personal accounts carry no GitHub fees. A project eligible for sponsorship shows a Sponsor button on its main page.

Remember for the exam
  • Fund a maintainer directly on GitHub → GitHub Sponsors.
  • No license → not open source.
Practice the 2 cards on this topic

How GitHub supports open source

ObjectiveExplain how GitHub supports and advances open-source projects.

GitHub helps people find projects and beginner tasks, and gives them a fork-and-pull-request path to contribute.

Read the full explanationHide the full explanation

GitHub helps contributors find work: search by topic, browse github.com/topics, and use Explore for recommendations. Labels such as good first issue and help wanted mark beginner-friendly issues, and a repository's /contribute page lists them. Before starting, check for a license, a code of conduct, contributing guidelines, and active maintainers; Pulse shows recent activity.

Contributing follows a standard path. Say on the issue that you plan to work on it, after checking its assignees and linked pull requests. Fork the repository, make the change on a branch, push it, and open a pull request to the original project with a clear description that links the issue. Pass the project's status checks, respond to review respectfully, and keep discussion public.

Remember for the exam
  • Beginner-friendly issues → good first issue label, /contribute page.
  • No write access → fork, then pull request.
Practice the 2 cards on this topic

Following users and organizations

ObjectiveIdentify how to follow users and organizations to stay informed about activity.

Following puts a person's or organization's public activity on your personal dashboard.

Read the full explanationHide the full explanation

Follow a person from their profile page to see their public activity on your personal dashboard; repositories they star may be recommended to you. Follow an organization from its page to see its public activity, such as new discussions, sponsorships, and repositories. Following organizations is in public preview and may change.

You can unfollow at any time, and see who a user follows and who follows them from their profile. Following is about people and organizations; to get notifications about a single repository, watch it, and to bookmark one, star it.

Remember for the exam
  • A person's public activity on your dashboard → follow them.
  • Notifications about one repository → watch it, not follow.
  • Following organizations is in public preview.
Practice the 2 cards on this topic

GitHub Marketplace

ObjectiveDescribe the GitHub Marketplace and its purpose.

GitHub Marketplace is where you find free and paid GitHub Actions and apps that extend your workflows.

Read the full explanationHide the full explanation

GitHub Marketplace connects developers with tools that extend and improve their GitHub workflows. It lists two kinds of tools, GitHub Actions and apps, either free or paid.

Anyone can publish an action, and GitHub verifies some partner organizations as verified creators. Anyone can list an app for free, but only apps owned by organizations can sell paid plans, after the organization completes publisher verification. Marketplace lists both GitHub Apps and OAuth apps; GitHub recommends GitHub Apps because they offer much more granular permissions.

Remember for the exam
  • Ready-made action or integration → GitHub Marketplace.
  • GitHub App over OAuth app → more granular permissions.
Practice the 2 cards on this topic

InnerSource

ObjectiveExplain how InnerSource applies open-source principles within organizations.

InnerSource runs a company's internal projects the way open-source projects are run, visible across the company but not outside it.

Read the full explanationHide the full explanation

InnerSource applies open-source patterns to projects with a limited audience, such as a company's employees: in effect, open source behind the firewall. It increases internal visibility, so teams can see and reuse each other's solutions; it reduces friction, because a team that needs a change can propose it, or fork if it can't be merged; and it standardizes practices across teams.

On GitHub Enterprise, use internal visibility for InnerSource repositories so every enterprise member can find them, and set roles from Read to Admin as needed. Make repositories discoverable and easy to contribute to with a README, a license, a CONTRIBUTING file, CODEOWNERS, issue and pull request templates, and a clear branching workflow. GitHub Discussions and Projects support cross-team collaboration.

Measure process and teams, not individuals: code review turnaround, pull request size, work in progress, unique contributors, projects reusing code, and cross-team @mentions. Misused metrics can harm the culture.

Remember for the exam
  • Open-source practices inside the company → InnerSource.
  • InnerSource repository visibility → internal.
  • Measure teams and process, not individual output.
Practice the 2 cards on this topic

Forks, templates, and discoverable repositories

ObjectiveRecognize when to use forks, templates, and discoverable repositories to promote collaboration.

Fork to contribute without write access, use a template to start a new project, and make repositories discoverable so others can find and reuse them.

Read the full explanationHide the full explanation

A fork is your own copy of a repository, connected to the original (upstream) one. Fork when you don't have write access, want to experiment without affecting the original, or are exploring a new direction; changes flow back through pull requests. If you have write access to a shared repository, use a branch instead.

A template repository gives a new project the same structure and files, starting from a single commit with no shared history. Use it to start new projects consistently, not to contribute back.

Discoverable repositories are easy to find and reuse: a descriptive name and short description, a README explaining the purpose, a license, and topics describing the purpose and subject area. Topics use lowercase letters, numbers, and hyphens, and a repository can have up to 20.

Remember for the exam
  • Contribute without write access → fork.
  • Start a new project from a standard structure → template.
  • Help others find a repository → name, description, README, license, topics.
Practice the 2 cards on this topic

GitHub billing and identity

Beyond the study guide

Nothing here is a GH-900 skills-measured bullet. These topics are taught in the official GitHub Foundations learning paths (billing and license usage in Part 1, enterprise identity in Part 2) but no bullet covers them, so they're included as background in case the exam draws on its training. Read them last, after the seven real domains.

Billing and license usage

GitHub billing, licenses, and usage

ObjectiveNot an official exam objective — background reading

GitHub bills combine license charges and usage-based charges; admins track seats and usage and control spending with limits and alerts.

Read the full explanationHide the full explanation

Not in the GH-900 skills measured, but taught in the official Part 1 module *Introduction to GitHub's products*. GitHub bills by account type. A bill can combine license (subscription) charges for products assigned to an account, such as GitHub Pro, GitHub Team, or Copilot seats, with usage-based charges for products whose cost grows with use, such as GitHub Actions, GitHub Packages, Codespaces, and some Copilot features. An enterprise account can consolidate billing across its organizations or route charges to cost centers.

Copilot Business and Copilot Enterprise are billed per assigned license, prorated when seats are added mid-cycle. Each license adds AI credits to a shared pool that features such as Copilot Chat, Copilot CLI, and Copilot cloud agent consume; code completions don't use credits on paid plans. Keep billing views (seats, costs, AI-credit use) separate from the Copilot usage metrics and impact dashboards, which measure adoption: a user can hold a billable license without using Copilot.

Enterprise admins review seat use by organization under license usage in the enterprise's billing settings; pay-as-you-go plans bill monthly for seats used, while prepaid plans show available licenses. Billing settings also break down Actions minutes by repository and runner type and Packages by storage and transfer. Budgets prevent surprises: they send email alerts as spending passes set percentages and can stop metered usage such as Actions at the limit (older training calls them spending limits), and reclaiming inactive seats and auditing regularly keep costs down. Prices and allowances change, so check GitHub's billing documentation.

Remember for the exam
  • Seats → license charges; Actions minutes, storage, AI credits → usage-based.
  • Usage metrics dashboard ≠ billing report.
  • Avoid surprises → budgets and alerts.
Practice the 6 cards on this topic

Enterprise identity and access

SAML SSO, SCIM, team sync, and tokens

ObjectiveNot an official exam objective — background reading

SAML SSO makes people authenticate through the company IdP, SCIM automates accounts, team sync maps IdP groups to teams, and tokens and keys authenticate Git and API access.

Read the full explanationHide the full explanation

Not in the GH-900 skills measured, but taught in the official Part 2 module *Authenticate and authorize user identities on GitHub*. SAML single sign-on connects GitHub to a company identity provider (IdP) such as Microsoft Entra ID, Okta, AD FS, OneLogin, or PingOne, so people authenticate there before reaching organization resources. Enforcing it for one organization removes noncompliant members immediately and suits pilots; enforcing it for the enterprise applies one policy everywhere, prompting noncompliant members when they next access a resource.

SAML SSO alone doesn't remove people who leave. SCIM provisions and deprovisions users automatically from the IdP and revokes stale tokens. Team synchronization maps GitHub teams to IdP groups in Entra ID or Okta so membership changes flow to GitHub teams; it needs SAML SSO and SCIM and doesn't create accounts. Enterprise Managed Users go further, with the IdP owning the accounts themselves.

For Git and API access, GitHub no longer accepts passwords. Use personal access tokens, preferring fine-grained PATs, which are limited to specific repositories and permissions and can expire; SSH keys on your account; or deploy keys, which attach to a single repository and are read-only by default. With SAML SSO, a PAT or SSH key must be authorized for the organization.

Remember for the exam
  • Authenticate through the company IdP → SAML SSO.
  • Automatic account removal → SCIM; IdP groups to GitHub teams → team sync.
  • One repository, read-only machine access → deploy key.
Practice the 6 cards on this topic

Finished reading?

Start with Round 1, the full assessment, to find out what actually stuck. Everything you grade Unsure or Missed collects in the Review Deck.