GitHub Foundations Certification Fact Sheet¶
Exam Overview¶
Exam Name: GitHub Foundations Duration: 120 minutes Questions: 75 multiple choice questions Passing Score: 70% Cost: $99 USD Delivery: Online proctored Prerequisites: None Validity: 3 years
Official Exam Page - Registration and details GitHub Foundations Study Guide - Official study guide GitHub Skills - Interactive learning paths
Target Audience¶
This certification is designed for: - Developers new to GitHub and version control - Students and early-career professionals - Project managers and team leads using GitHub - Anyone seeking to validate GitHub platform knowledge - Professionals transitioning to collaborative development
Domain 1: Introduction to Git and GitHub (22%)¶
Git Basics¶
Core Concepts: - Repository - A directory tracked by Git containing project files and history - Commit - A snapshot of changes with a message, author, and timestamp - Branch - A lightweight movable pointer to a commit - HEAD - A pointer to the current branch/commit you are working on - Remote - A version of the repository hosted on a server (e.g., GitHub) - Working directory - The files you see and edit on your local machine - Staging area (index) - A holding area for changes to be included in the next commit
Git Handbook - Git fundamentals Git Cheat Sheet - Quick reference for commands
Essential Git Commands: | Command | Purpose | |---------|---------| | git init | Initialize a new repository | | git clone <url> | Copy a remote repository locally | | git add <file> | Stage changes for commit | | git commit -m "message" | Create a commit with staged changes | | git push | Upload local commits to remote | | git pull | Fetch and merge remote changes | | git fetch | Download remote changes without merging | | git branch | List, create, or delete branches | | git checkout / git switch | Switch between branches | | git merge | Combine branch histories | | git rebase | Reapply commits on top of another base | | git status | Show working directory status | | git log | View commit history | | git diff | Show changes between commits/working directory | | git stash | Temporarily save uncommitted changes | | git reset | Unstage or undo commits |
Using Git - Comprehensive Git guide About Git - Git overview
Git vs GitHub¶
| Feature | Git | GitHub |
|---|---|---|
| Type | Version control system | Cloud platform |
| Hosting | Local | Cloud-hosted |
| Collaboration | Basic (patches, email) | Rich (PRs, issues, reviews) |
| UI | Command line | Web interface + CLI |
| Extras | None | Actions, Projects, Security |
About GitHub - GitHub and Git relationship
GitHub Account Types and Plans¶
| Feature | Free | Pro | Team | Enterprise |
|---|---|---|---|---|
| Public repos | Unlimited | Unlimited | Unlimited | Unlimited |
| Private repos | Unlimited | Unlimited | Unlimited | Unlimited |
| Collaborators | Unlimited | Unlimited | Unlimited | Unlimited |
| Actions minutes | 2,000/mo | 3,000/mo | 3,000/mo | 50,000/mo |
| Packages storage | 500 MB | 2 GB | 2 GB | 50 GB |
| Code review tools | Basic | Advanced | Advanced | Advanced |
| SAML SSO | No | No | No | Yes |
| Advanced audit | No | No | No | Yes |
GitHub Plans - Plan comparison Account Types - Personal, Organization, Enterprise
GitHub Mobile and Desktop¶
- GitHub Mobile - iOS and Android app for managing notifications, issues, PRs on the go
- GitHub Desktop - GUI application for Git operations without command line
- GitHub CLI (gh) - Command-line tool for GitHub operations
GitHub Mobile - Mobile app features GitHub Desktop - Desktop application guide GitHub CLI - CLI tool documentation
Domain 2: Working with GitHub Repositories (8%)¶
Repository Management¶
Creating Repositories: - New repositories can be created via web, CLI, API, or Desktop - Choose visibility: public, private, or internal (organizations only) - Initialize with README, .gitignore, and license
Key Repository Files: | File | Purpose | |------|---------| | README.md | Project description and documentation | | .gitignore | Files/directories to exclude from tracking | | LICENSE | Open source license terms | | CODEOWNERS | Automatic review assignment rules | | CONTRIBUTING.md | Contribution guidelines | | CODE_OF_CONDUCT.md | Community behavior standards | | SECURITY.md | Security vulnerability reporting | | FUNDING.yml | Sponsorship configuration |
Creating a Repository - Step-by-step guide About READMEs - README best practices Licensing a Repository - License guide
Clone vs Fork¶
| Aspect | Clone | Fork |
|---|---|---|
| Creates | Local copy | Server-side copy under your account |
| Link to original | Direct remote | Upstream relationship |
| Use case | Direct collaboration | Contributing to others' repos |
| Push access | Requires permissions | Always (to your fork) |
| Stays synced | Via pull/fetch | Manual sync required |
Cloning a Repository - Clone guide Fork a Repository - Fork guide
GitHub Pages¶
- Free static site hosting directly from a repository
- Supports custom domains and HTTPS
- Can use Jekyll or custom static site generators
- Source can be from root, /docs folder, or gh-pages branch
GitHub Pages - Pages documentation
Domain 3: Collaboration Features (30%)¶
Issues¶
- Track bugs, feature requests, tasks, and discussions
- Support labels, assignees, milestones, and projects
- Can be linked to pull requests using keywords (fixes, closes, resolves)
- Templates can be created for consistent issue reporting
- Support task lists with checkboxes
About Issues - Issues overview Creating an Issue - Issue creation Linking a PR to an Issue - Auto-closing issues
Pull Requests¶
Lifecycle: 1. Create a branch from the base branch 2. Make commits with changes 3. Open a pull request 4. Request reviewers and address feedback 5. Pass required checks (CI, code review) 6. Merge the pull request 7. Delete the feature branch (optional)
PR Features: - Draft pull requests - signal work in progress - Review requests - assign specific reviewers - Code review comments - inline suggestions - Suggested changes - propose specific code changes - Status checks - automated CI/CD validation - Auto-merge - merge when all conditions are met
About Pull Requests - PR overview Creating a Pull Request - PR creation Reviewing Changes - Code review guide
Merge Strategies¶
| Strategy | Result | History | Use Case |
|---|---|---|---|
| Merge commit | Creates merge commit | Preserves all commits | Default, preserves context |
| Squash and merge | Single commit | Clean linear history | Feature branches with many small commits |
| Rebase and merge | Replays commits | Linear history | Clean history without merge commits |
About Merge Methods - Merge strategies
Branch Protection Rules¶
- Require pull request reviews before merging
- Require status checks to pass before merging
- Require signed commits
- Require linear history
- Restrict who can push to matching branches
- Require conversation resolution before merging
- Lock branch (read-only)
Branch Protection Rules - Protection settings CODEOWNERS - Automatic review assignment
GitHub Markdown¶
Essential syntax for communication on GitHub: - Headers, bold, italic, strikethrough - Lists (ordered, unordered, task lists) - Links and images - Code blocks and syntax highlighting - Tables - Alerts/admonitions (Note, Warning, Important) - Mermaid diagrams - Mathematical expressions (LaTeX) - Emoji shortcodes
Basic Formatting Syntax - Markdown reference GitHub Flavored Markdown - GFM specification
Domain 4: Modern Development (13%)¶
GitHub Actions Basics¶
- Workflow - Automated process defined in YAML, stored in
.github/workflows/ - Event/Trigger - What starts the workflow (push, pull_request, schedule, etc.)
- Job - A set of steps that run on a single runner
- Step - An individual task (runs a command or an action)
- Action - A reusable unit of code from the Marketplace or custom
- Runner - The machine that executes the workflow (GitHub-hosted or self-hosted)
Understanding GitHub Actions - Actions overview Workflow Syntax - YAML reference GitHub Marketplace - Actions marketplace
GitHub Codespaces¶
- Cloud-hosted development environment
- Accessible via browser or VS Code
- Pre-configured with devcontainer.json
- Includes default tools, SDKs, and extensions
- Billed per compute and storage usage
- Supports port forwarding and dotfiles
GitHub Codespaces Overview - Codespaces documentation
GitHub Copilot Basics¶
- AI-powered code completion tool
- Integrates with VS Code, JetBrains, Neovim, and more
- Provides code suggestions, chat, and explanations
- Available in Individual, Business, and Enterprise plans
GitHub Copilot - Copilot documentation
Domain 5: Project Management (7%)¶
GitHub Projects¶
New Projects (recommended): - Flexible table, board, and roadmap views - Custom fields (text, number, date, single select, iteration) - Built-in workflows for automation - Supports cross-repository tracking - Insights and charts
Classic Projects: - Kanban-style boards - Limited to a single repository or organization - Being superseded by new Projects
About Projects - Projects overview Quickstart for Projects - Getting started
Milestones¶
- Group issues and PRs into milestones with due dates
- Track progress as percentage complete
- Useful for release planning and sprint tracking
About Milestones - Milestones guide
Domain 6: Privacy, Security, and Administration (10%)¶
Authentication¶
- Two-factor authentication (2FA) - Required for all GitHub.com accounts
- SSH Keys - Secure authentication for Git operations
- Personal Access Tokens (PATs) - Token-based API/CLI authentication
- GPG/SSH Signing - Verify commit authorship
- SAML SSO - Enterprise single sign-on (Enterprise plan)
About 2FA - 2FA setup SSH Keys - SSH configuration Personal Access Tokens - PAT management
Security Features¶
- Dependabot alerts - Notify about vulnerable dependencies
- Secret scanning - Detect exposed secrets in repositories
- Code scanning - Find potential security vulnerabilities in code
- Security advisories - Report and manage security vulnerabilities
- Security policy - SECURITY.md file for vulnerability reporting
Dependabot Alerts - Dependency vulnerability alerts Secret Scanning - Secret detection Code Scanning - Code analysis
Organization Management¶
- Roles: Owner, Member, Billing Manager, Outside Collaborator
- Teams: Group members with cascading access permissions
- Repository permissions: Read, Triage, Write, Maintain, Admin
- Audit log: Track organization activity
Organization Roles - Role permissions Managing Teams - Team management
Domain 7: Benefits of the GitHub Community (10%)¶
Open Source¶
Common Licenses: | License | Type | Key Feature | |---------|------|-------------| | MIT | Permissive | Simple, minimal restrictions | | Apache 2.0 | Permissive | Patent protection included | | GPL v3 | Copyleft | Derivative work must be GPL | | BSD ⅔ | Permissive | Similar to MIT | | LGPL | Weak copyleft | Libraries can be linked freely | | Unlicense | Public domain | No restrictions whatsoever |
Choose a License - License comparison tool Open Source Guide - GitHub's open source guide
Contributing to Open Source¶
- Find a project (GitHub Explore, Topics, Good First Issues)
- Read CONTRIBUTING.md and CODE_OF_CONDUCT.md
- Fork the repository
- Create a feature branch
- Make changes and commit
- Open a pull request
- Address review feedback
Contributing to Projects - Contribution guide GitHub Explore - Discover projects
InnerSource¶
- Applying open source practices within an organization
- Internal collaboration across teams and departments
- Shared codebases with internal visibility
- Benefits: reduced duplication, faster development, knowledge sharing
InnerSource Introduction - InnerSource fundamentals
Community Features¶
- GitHub Sponsors - Fund open source maintainers
- GitHub Stars - Recognize community contributors
- GitHub Discussions - Forum-style conversations in repositories
- Community profiles - Health score for repositories
GitHub Sponsors - Sponsorship program GitHub Discussions - Discussions feature
Exam Tips¶
High-Priority Topics (by weight)¶
- Collaboration Features (30%) - Master issues, PRs, code review
- Git and GitHub (22%) - Know all Git commands and concepts
- Modern Development (13%) - Understand Actions, Codespaces, Copilot basics
- Security (10%) - Know 2FA, SSH, basic security features
- Community (10%) - Understand open source, licenses, InnerSource
- Repositories (8%) - Repository management essentials
- Project Management (7%) - Projects, milestones, labels
Key Differentiators to Remember¶
git fetchdownloads but does NOT merge;git pulldoes both- Fork creates a server-side copy; clone creates a local copy
- Squash merge creates one commit; merge commit preserves all
- Issues track work; Discussions are for conversations
- Classic Projects are per-repo; new Projects are cross-repo
- Personal Access Tokens (classic) vs fine-grained tokens
- GitHub-hosted runners vs self-hosted runners