GitHub
In short: A cloud platform for hosting Git repositories, with additional features like pull requests, issues and CI/CD.
In more detail: Beyond pure Git hosting, offers code review (pull requests), task management (issues), automation (GitHub Actions) and social features (stars, forks). Its biggest competitor is GitLab, which offers similar features and can additionally be self-hosted.
In Depth
A pull request (PR) is GitHub’s central collaboration mechanism: instead of writing directly to the main branch, you propose changes on your own branch, others can comment on them, request changes, and only after approval is it merged — this makes code review a fixed part of the workflow instead of an afterthought.
GitHub Actions allows automated workflows (tests, builds, deployments) to be triggered directly by certain events (e.g. every push or PR), defined in YAML files in the repository itself:
on: push
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm testDespite the name, GitHub isn’t part of Git itself, but a standalone product, owned by Microsoft since 2018, that uses Git as its underlying technology — a repository can always be managed purely locally, or via another provider (GitLab, Bitbucket), without GitHub.
Issues and project management
Besides code hosting, GitHub is also the primary task-management tool for many teams: issues serve as bug reports, feature requests or general discussion points, can be tagged with labels, milestones and assignees, and be visually organised via project boards (Kanban-like columns such as “To Do”, “In Progress”, “Done”). Commits and pull requests can automatically close issues via a keyword (Fixes #42 in a commit message automatically closes issue number 42 on merge) — a small but very practical piece of automation in everyday use.
Forks and open-source contributions
For public open-source projects, the usual contribution process goes through a “fork”: instead of needing direct write access to the original repository, you create your own copy under your own account, make changes there, and then submit a pull request against the original repository. The maintainers of the original then decide whether and how the proposed changes are accepted — a model that in principle lets anyone contribute to practically any public project, without owners losing control over their repository.
GitHub Actions as a CI/CD platform
Beyond simple test automation, GitHub Actions has developed into a full-fledged CI/CD platform, with a large marketplace of ready-made actions (e.g. for deployments to AWS, Docker image builds, automatic package publishing). Workflows can be triggered by a wide variety of events — not just pushes, but also new issues, schedules (cron syntax) or manual triggers — and split into several jobs running in parallel or sequentially, which makes complex deployment pipelines representable directly in the repository, without running separate CI infrastructure.
See also: Git, GitLab, CI/CD Pipeline