← Back to Skills Library

GitHub

Information Technology > Version control

Description

GitHub is a web-based platform that utilizes Git, a version control system allowing multiple people to work on projects simultaneously without overwriting each other's changes. It provides a space for collaboration and code hosting, where developers can create repositories to store their projects, track changes, and manage versions. Users can clone these repositories, make changes locally, and then push updates back. Advanced features include branching and merging, resolving conflicts, and using .gitignore files. GitHub also offers functionalities like continuous integration/continuous deployment (CI/CD) through GitHub Actions, and security measures for your repositories. Expertise involves deep understanding of Git internals, customization, and troubleshooting complex issues.

Expected Behaviors

✎
LEVEL 1

Fundamental Awareness

At this level, individuals have a basic understanding of what GitHub is and how it functions. They are familiar with the concept of version control systems and repositories. However, they may not yet be comfortable with performing tasks on GitHub without guidance.

🌱
LEVEL 2

Novice

Novices can perform basic tasks on GitHub such as creating and cloning repositories, making commits, and pushing or pulling updates. They understand the workflow of using GitHub but may still need assistance when encountering unfamiliar situations.

🌍
LEVEL 3

Intermediate

Intermediate users are comfortable with more complex tasks such as branching and merging, resolving merge conflicts, and using .gitignore files. They can revert commits and understand the use of Git tags. They can handle most common scenarios independently.

⭐
LEVEL 4

Advanced

Advanced users can work with remote repositories and manage large projects with multiple contributors. They are proficient in using advanced Git commands like rebase, cherry-pick, bisect. They can set up and manage GitHub Actions for CI/CD and secure their repositories.

🏆
LEVEL 5

Expert

Experts have a deep understanding of Git internals and can customize Git configuration to suit their needs. They can write custom Git hooks and troubleshoot complex Git issues. They may even contribute to the Git open source project.

Micro Skills

✎
LEVEL 1

Fundamental Awareness

Understanding the concept of cloud-based hosting
Recognizing the difference between Git and GitHub
Identifying the key features of GitHub like repositories, pull requests, issues
Recognizing the problems solved by version control
Identifying the benefits of version control in software development
Familiarity with the concept of 'commit'
Knowing the difference between local and remote repositories
Recognizing the structure of a typical repository
Understanding the role of README file in a repository
🌱
LEVEL 2

Novice

Understanding the difference between public and private repositories
Adding .gitignore and license files to a repository
Cloning a repository using HTTPS
Cloning a repository using SSH
Understanding the difference between cloning and forking a repository
Writing meaningful commit messages
Staging changes for commit
Committing single or multiple files
Viewing commit history
Pushing commits to a remote repository
Understanding the concept of 'origin'
Dealing with rejected pushes
Pulling changes from a remote repository
Understanding the difference between 'git pull' and 'git fetch'
Resolving conflicts when pulling
🌍
LEVEL 3

Intermediate

Creating a new branch
Switching between branches
Merging branches
Understanding fast-forward merges
Understanding merge conflicts
Identifying merge conflicts
Using Git's conflict markers
Resolving conflicts with a text editor
Committing resolved conflicts
Aborting a merge
Understanding the purpose of .gitignore
Creating a .gitignore file
Specifying patterns in .gitignore
Ignoring tracked files
Checking the ignored files
Understanding the difference between git revert and git reset
Reverting a single commit
Reverting multiple commits
Resolving conflicts during a revert
Understanding the impact of reverting public commits
Understanding the purpose of Git tags
Creating lightweight tags
Creating annotated tags
Listing all tags
Deleting tags
⭐
LEVEL 4

Advanced

Adding a remote repository
Fetching data from a remote repository
Pushing changes to a remote repository
Managing multiple remote repositories
Understanding and using Git flow
Managing pull requests
Code reviewing
Using project boards for task management
Setting up and managing access permissions
Rebasing branches
Cherry-picking commits
Bisecting to find problematic commits
Stashing changes
Interactive rebasing
Creating a GitHub Actions workflow
Configuring build steps
Managing secrets and environment variables
Setting up continuous integration
Setting up continuous deployment
Enabling two-factor authentication
Managing access keys
Setting up branch protection rules
Auditing and monitoring activity
Setting up code scanning alerts for security vulnerabilities
🏆
LEVEL 5

Expert

Understanding the Git object model
Knowledge of how Git stores data
Understanding the Git index
Knowledge of Git's packfile format
Setting global and repository-specific configurations
Using git config to manage configuration options
Understanding and modifying the .gitconfig file
Creating and using Git aliases
Understanding the different types of Git hooks
Writing scripts for pre-commit, post-commit, pre-push, etc. hooks
Testing and debugging Git hooks
Sharing Git hooks with other developers
Using git reflog to recover lost commits
Understanding and resolving detached HEAD state
Resolving complex merge conflicts
Recovering from a bad rebase or cherry-pick
Understanding the Git project's contribution guidelines
Setting up the Git project for local development
Submitting patches to the Git mailing list
Reviewing and responding to feedback on your contributions

Skill Overview

  • Expert12 months experience
  • Micro-skills93
  • Roles requiring skill5

Sign up to prepare yourself or your team for a role that requires GitHub.

LoginSign Up