Collaborative development platform built on Git. More than repository hosting — it's the central hub for code review, CI/CD, project management, and open source collaboration.
GitHub is a platform that extends Git with collaboration, automation, and project management. Founded in 2008, acquired by Microsoft in 2018, it now hosts over 200 million repositories and is the de facto standard for open source development.
Git is the version control engine. GitHub adds:
The central collaboration flow:
mainmain## Description
What changes and why.
## Type of change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation
## Testing
How this change was tested.
## Screenshots (if applicable)| Strategy | Result | When to use |
|---|---|---|
| Merge commit | Preserves all commits + merge commit | Full history matters |
| Squash and merge | Single commit on main | PRs with many WIP commits |
| Rebase and merge | Individual commits without merge commit | Clean linear history |
Declarative CI/CD in YAML. Workflows live in .github/workflows/.
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install
- run: pnpm test
- run: pnpm buildactions/checkout@v4)on:
push: # any push
pull_request: # PRs opened/updated
schedule:
- cron: '0 0 * * *' # daily at midnight UTC
workflow_dispatch: # manual from UI
release:
types: [published] # when a release is publishedRules to protect critical branches:
Configure at: Settings, Branches, Add rule
gh)Interact with GitHub from the terminal:
# Authentication
gh auth login
# Repositories
gh repo create my-project --public
gh repo clone owner/repo
gh repo fork owner/repo
# Pull Requests
gh pr create --title "feat: add login" --body "Description"
gh pr list
gh pr checkout 123
gh pr merge 123 --squash
gh pr review 123 --approve
# Issues
gh issue create --title "Bug: login fails"
gh issue list --label bug
gh issue close 456
# Actions
gh run list
gh run view 789
gh run watch 789
# Releases
gh release create v1.0.0 --generate-notes| Platform | Strength | Consideration |
|---|---|---|
| GitHub | Ecosystem, community, Actions | Owned by Microsoft |
| GitLab | Complete DevOps, self-hosted | More complex UI |
| Bitbucket | Atlassian integration (Jira) | Less open source community |
| Azure DevOps | Enterprise, Azure integration | Learning curve |
feat:, fix:, chore:, docs:.github/
├── workflows/ # GitHub Actions
├── CODEOWNERS # Automatic reviewer assignment
├── PULL_REQUEST_TEMPLATE.md
├── ISSUE_TEMPLATE/
│ ├── bug_report.md
│ └── feature_request.md
├── FUNDING.yml # Sponsors
└── dependabot.yml # Dependabot configuration
GitHub is not just repository hosting — it is the platform where code, review, CI/CD, project management, and collaboration converge. Mastering its native capabilities (Actions, branch protection, CLI) reduces dependency on external tools and accelerates the development cycle.
gh reference.Distributed version control system created by Linus Torvalds in 2005. Foundation of every modern development workflow — from local commits to global collaboration.
GitHub's native CI/CD platform. Declarative YAML workflows that automate build, test, deploy, and any development lifecycle task — directly from the repository.
Minimalist branching model designed for continuous deployment. Only two elements — main and feature branches — with PRs as the integration point and immediate deploy after merge.
Application of open-source development practices within an organization, allowing teams to contribute to other teams' projects with transparent processes.
Branching model for Git proposed by Vincent Driessen in 2010. Defines branches with fixed roles (main, develop, feature, release, hotfix) for managing structured releases.
Continuous Integration and Continuous Delivery/Deployment — practices that automate code integration, testing, and delivery to production. Foundation of modern software engineering.