Welcome to the Full GitHub Foundations Study Guide!
Whether you're preparing to pass the GitHub Foundations Exam or seeking to enhance your GitHub skills and become more familiar with the ecosystem, this repository is tailored for you.
All the notes are conveniently included within this repository, written in markdown for easy comprehension, with a focus on certification preparation.
Tip
- If you are new to GitHub and simply want to gain some knowledge about it, it will take you about 10 hours to read everything.
- However, if you plan to take the exam and are not familiar with the topics or are new to GitHub, I suggest spending approximately 20 hours on theoretical aspects and another 10 hours on practice in order to succeed.
- These timeframes are intended for new beginners; you may require much less time if you are already familiar with GitHub and only need to refresh some tricky topics.
This study guide emphasizes two key aspects in its study path:
- Progressing from foundational to advanced content, facilitating familiarity with the GitHub ecosystem.
- Highlighting important aspects and alerting you to potential trick questions that may appear on the exam.
Important
Some of the following topics are theoretical, while others require practical application. You should feel comfortable working on GitHub and recall the steps you typically follow when performing tasks.
- THE BASICS
- GIT AND GITHUB RELATED
- GITHUB CLI
- SSH AND TOKENS
- APIS's AND SDK'S
- GITHUB DESKTOP AND MOBILE
- GITHUB ACCOUNTS
- GITHUB PROFILE
- MARKDOWN
- REPOSITORIES
- ISSUES
- PULL REQUESTS
- FILTER SEARCH AND SORT
- DISCUSSIONS
- NOTIFICATIONS
- GISTS
- WIKI
- PAGES
- GITHUB ACTIONS
- COPILOT
- CODESPACES
- OPEN SOURCE
- PROJECTS
- AUTHENTICATION AND SECURITY
- ADMINISTRATION
- GITHUB ENTERPRISE
This is the brakdown that Github provides in the official study guide, every sub item its linked with the content related.
Caution
Be careful, you should not trust on this oficial breakdown:
- It covers only 50-55% of the total content required for exam success.
- The suggested order may not align with the recommended path, as some domains contain unrelated content.
- In the oficial breakdown there is no space define for practice which is a importante aspect in order to be familiar with the content.
- Describe version control
- Define distributed version control
- Describe Git
- Describe GitHub
- Explain the difference between Git and GitHub
- Describe a GitHub repository
- Describe a commit
- Describe branching
- Define a remote in Git terminology
- Describe the GitHub flow
- Describe the different GitHub accounts (personal, organization, enterprise)
- Describe GitHub’s products for personal accounts (free, pro)
- Describe GitHub’s products for organization accounts (free for organizations, teams)GitHub Entities
- Describe the different deployment options for GitHub Enterprise
- Describe the features in the user profile (metadata, achievements, profile readme, repositories, pinned repositories, stars, etc.)
- Identify the text formatting toolbar on issue and pull request comments
- Describe Markdown
- Identify the basic formatting syntax (headings, links, task lists, comments, etc.)
- Explain where to find and use slash commands
- Explain the difference between GitHub Desktop and github.com
- Describe the available features with GitHub Desktop
- Describe the available features with GitHub Mobile
- Explain how to manage notifications through the GitHub Mobile app
- Describe the components of a good README and the recommended repository files (LICENSE, CONTRIBUTING,CODEOWNERS)
- Explain basic repository navigation
- Explain how to create a new repository
- Describe repository templates
- Describe the different features to maintaining a repository
- Describe how to clone a repository
- Describe how to create a new branch
- Explain how to add files to a repository
- Identify how to view repository insights
- Explain how to save a repository with stars
- Explain feature previews
- Describe how to link a PR to an issue
- Describe how to create an issue
- Describe the difference between an issue, discussion, and pull request
- Explain how to create a branch from an issue
- Identify how to assign issues
- Describe how to search and filter issues
- Describe how to pin an issue
- Explain basic issue management
- Explain the difference between issue templates and issue forms
- Explain how to use keywords in issues
- Describe a pull request
- Explain how to create a new pull request
- Describe the
base
andcompare
branches in a pull request - Explain the relationship of commits on a pull request
- Describe draft pull requests
- Describe the purpose of the pull request tabs (conversation, commits, checks, files changed
- Identify how to link activity within a pull request
- Explain the different pull request statuses
- Recognize how to comment on a posted link to a line or lines of code from a file
- Describe code review with a codeowners file
- Explain the different options for providing a code review on a pull request (comment, approve, request changes, suggested changes)
- Describe the difference between discussions and issues
- Explain the options available with discussions (announcements, ideas, polls, Q&A, show and tell)
- Identify how to mark a comment as an answer to a discussion
- Explain how to convert a discussion to an issue
- Recognize how to pin a discussion
- Describe how to manage notification subscriptions
- Explain how to subscribe to notification threads
- Describe how to find threads where you are at-mentioned
- Identify the notification filtering options
- Explain the different notification configuration options
- Explain how to create a GitHub gist
- Describe how to fork and clone a gist
- Explain GitHub Wiki pages
- Describe how to create, edit, and delete wiki pages
- Explain the visibility of wiki pages
- Describe GitHub Pages
- Describe GitHub Actions (basic understanding)
- Explain where you can use GitHub Actions within GitHub (general event types)
- Explain where you can find existing GitHub Actions
- Describe GitHub Copilot
- Describe the difference between GitHub Copilot for Individuals and GitHub Copilot for Business
- Explain how to get started using GitHub Copilot
- Describe GitHub Codespaces
- Identify how do to start a GitHub codespace
- Describe the codespace lifecycle
- Describe the different customizations you can personalize with GitHub Codespaces
- Recognize how to add and configure dev containers
- Identify how to share a deep link to a GitHub codespace
- Explain how to use the github.dev editor
- Explain the differences between the github.dev editor and a GitHub Codespace
- Describe GitHub Projects
- Explain the layout options for projects
- Describe the configuration options for projects
- Explain the difference between projects and projects classic
- Explain the use of labels
- Explain the use of milestones
- Describe how to use and create template repos
- Explain how to create, edit, and delete saved replies
- Describe the benefits of using a saved reply
- Recognize how to add assignees to issues and pull requests
- Explain how to use project workflows
- Describe project insights
- Explain how to secure your account with 2FA
- Describe the different access permissions
- Explain EMUs (Enterprise Managed Users)
- Explain how to enable and disable features
- Recognize repository permission levels
- Identify the options for repository visibility
- Explain repository privacy setting options (branch protections, codeowners, required reviewers)
- Describe the main features and options in the Security tab
- Define repository insights
- Explain how to manage collaborators
- Explain how to manage organization settings
- Describe members, teams, and roles in a GitHub organization
- Describe open source
- Describe GitHub Sponsors
- Describe how GitHub advances open source projects
- Identify how to follow people (receive notifications, discover projects in their community)
- Explain how to follow organizations (receive notifications about their activity)
- Describe the GitHub Marketplace and its purpose
- Describe InnerSource
- Identify the differences between InnerSource and open source
- Describe forking
- Describe the components of a discoverable repository
- Describe when to use issue templates
- Describe when to use pull request templates
During my exam preparation, I chose to compile all necessary resources into this repository to centralize information.
By studying from these notes, practicing common GitHub tasks, familiarizing myself with GitHub CLI commands, writing and utilizing Markdown, and refreshing my Git skills, I successfully passed the exam. Here its my certificate.