What Is GitHub?
Author: Domeny.ForSale editorial team Published
In brief: GitHub is an online platform for storing projects, tracking changes, and collaborating on code and documentation. It uses Git—a system that records the history of changes to files. You can use GitHub for your own projects, teamwork, or reporting bugs in other people’s software; you do not need to know terminal commands right away.
GitHub and Git—how do they differ?
Git is a version control system, a tool that lets you save successive states of a project, compare changes, and return to earlier versions. It runs locally on your computer and does not require an account with any online service. Instead of creating folders called “project-final” and “project-final-revised”, you save changes along with a description.
GitHub is a service that uses Git, adding a shared space for a project, code review, discussions, and access management. GitHub and Git are therefore not two names for the same tool. You can use Git without GitHub, including with other platforms such as GitLab or Bitbucket.
The main workspace is a repository: a collection of project files along with their change history. A repository on GitHub can be public, meaning visible to everyone, or private, accessible only to authorised people. However, privacy is not a substitute for safe data storage practices.
What is GitHub used for in practice?
GitHub is most commonly used for software development, but it can also store documentation, training materials, or a website’s text files. It works particularly well for content where comparing changes line by line is useful. It is less convenient as a general storage space for large videos, photos, or documents that need to be edited in an office suite.
The platform helps with several related tasks:
- Recording a project’s history—checking who changed a particular section and how they described the change.
- Reviewing changes before accepting them—discussing a proposal and requesting revisions.
- Reporting bugs and ideas—using issues, which are reports associated with a repository.
- Automating work—using GitHub Actions to run tests, for example, after code changes.
- Publishing simple websites—GitHub Pages lets you publish static websites made up of files such as HTML, CSS, and JavaScript.
GitHub Pages is not a general-purpose hosting service for applications with a database and server-side code. Simply putting a project in a repository does not mean the application will start running at a public address either—it needs to be deployed and run in a suitable environment.
How does collaboration on changes work?
Imagine a team managing a company website. One person fixes the contact form while another changes the price list. Both can work on separate branches, parallel lines of development within the project, without immediately changing its main version.
Changes are recorded in commits. A commit is a record of the project’s state with information about the author and a description, such as “Fix email address validation”. Small, well-described commits make it easier to understand later how a particular change came about.
When the form is ready, its author opens a pull request, a proposal to merge the changes into a chosen branch, usually the main one. Others can see the differences, add comments, and check test results. After review, the changes can be combined—an operation called a merge.
If two people change the same section in different ways, a conflict may arise. Git cannot always resolve it automatically: a person must decide which version, or which combination of versions, is correct. The platform supports collaboration, but it does not replace an assessment of code quality.
How can you get started without knowing terminal commands?
You usually do not need an account to browse public repositories. An account is useful when you want to create your own projects, comment, or report problems. You can set up your first repository in a browser:
- Create an account and enable two-factor authentication, an additional step to confirm a login.
- Choose to create a repository, give it a name, and deliberately select its visibility setting.
- Add a README.md file—a project description displayed on the repository’s main page. The
.mdextension stands for Markdown, a simple way to format text. - Write a short note about the project’s purpose and save it as a commit.
- Create a branch, revise the description, and open a pull request to practise reviewing differences.
For more convenient work with files on your computer, you can later use GitHub Desktop, a graphical application that supports common Git operations. Cloning a repository creates a local copy along with its history; downloading a ZIP archive gives you the files but does not prepare a copy for working with Git history.
What should you watch out for before publishing a project?
Do not store passwords, API keys, or customer data in a repository. Removing a secret from the current file does not automatically remove it from earlier commits. If a key has been exposed, the first priority is to revoke or replace it, then clean up the history and check the consequences of the leak.
Publicly available code does not automatically mean permission to use it in any way you like. Check the licence file, often named LICENSE, and the terms of the dependencies you use. This is general guidance, not individual legal advice; the absence of a licence does not mean the absence of copyright.
GitHub offers both free and paid features. Before adopting it for a team, check the official pricing page and documentation for the current limits on automation, storage, and features in the relevant plan.
To get started, create a private repository with a sample README and take one change through a branch and a pull request. You will learn the basic workflow without publishing real code or data.
See also: What Is 2FA?
