# Git and GitHub

## Topic overview

This page briefly explains Git and GitHub and how they are related. It supplies further learning by means of videos and links to the official Git and GitHub websites, plus other CC-licenced sources. The developing section explains what some terms mean and gives links to learning for getting started with GitHub.

### Expertise needed

Skilled and Adept sections on using GitHub.

## Developing

#### Git

...is a system that is widely used by developers who write code. It may be used by any people who build coding or complex non-coding projects together.

This is the workflow of all these people as they work with their digital files:

```
    Create – Save – Edit – Save again
```

Every time a file is edited a different version is saved. This is where Git comes in.

Git is a **version control system**. This means it records changes made to files as people work on a project. Every Git project is made up of many files, called a **repository or repo**.

Other things about Git

* Git is **open source**. This means anyone can use it (download it), modify it, and distribute it for free. All documentation is freely available online
* Git is a **distributed version control system**. This means users don't need to be connected to the main repo to work on it. They clone a complete version of the main repo to their local computer to work on files. When they are ready, they share their changes.

Read [*What's a version control system?*](https://guides.github.com/introduction/git-handbook/#version-control)\
Watch [*Git Basics: What is version control?*](https://www.youtube.com/watch?v=8oRjP8yj2Wo)

#### GitHub

...is a cloud-based platform where people can work on, share, and manage projects using Git. GitHub started mainly for sharing code for software development but it can also be used (as we have here) for developing long complex documents like training manuals. GitHub is owned by Microsoft (they bought it in 2018).

GitHub makes it easy for people to collaborate on projects by

* Providing a platform to work together using Git
* Allow for review of contributions from different people
* Resolving conflicts between contributions

This is the basic GitHub workflow, or **flow**:

```
Branch project to work on changes without disturbing the main branch
Edit and Commit changes
Open a Pull request
Discuss and review changes
Merge changes with main branch
```

Watch [*What is Github?*](https://youtu.be/w3jLJU7DT5E) to see how GitHub works.\
Read [*Understanding the GitHub flow*](https://guides.github.com/introduction/flow/) to see a full explanation of the GitHub workflow.

It is easy to get started using GitHub! To begin, follow our instructions on how to [sign up and then make a repository.](https://aarnet.gitbook.io/digital-skills-gitbook-1/contributing)
