Slide instructions

SPACEBAR to move forward through slides.

SHIFT & SPACEBAR to move backwards through slides.

LEFT ARROW & RIGHT ARROW to move through sections.

ESC to see overview and ESC again to exit.

F to enter presentation mode and ESC to exit.

A quick intro to Git and GitHub

What will we cover?

  1. What is Git?
  2. Why developers use Git
  3. Core Git concepts
  4. A quick Git demo
  5. What is GitHub?
  6. Common GitHub features
  7. Common tools
  8. FAQ

1. What is Git?

Git is a version control tool that helps developers save different versions of their work over time.

Git is widely used in modern software development to keep track of code changes, collaborate with others, and avoid losing work.

Git works on your local machine and doesn’t require an internet connection for day-to-day tasks like saving changes or creating branches.

Key features:
  • Stores complete snapshots of a project.
  • Every user has the full history.
  • Enables safe experimentation.
  • Efficient and fast.
  • Flexible and widely supported.

2. Why developers use Git

Reason 1: History

Git maintains a detailed history of all changes - by all users.

Git makes it easy to go back to earlier versions of files or folders — like a time machine for your project.

You can scroll back through saved points, pick one that worked, and go back to it if needed.

Reason 2: Multiple people, same files

Git allows multiple people to safely work on the same project at the same time — even in the same file.

Everyone works on their own copy of the project.

When they're ready, they can save their changes and combine them back into the main version using Git.

If two people change the same part of a file, Git will flag a conflict and ask someone to review and choose which version to keep.

This makes collaboration safe and organised, without accidentally overwriting each other's work.

Reason 3: Offline

Git allows you to work totally offline, and only connect when pushing / pulling etc.

Alternatives

There are other version control and collaboration tools available:

  • Subversion (SVN)
  • Perforce (Helix Core)
  • Microsoft Team Foundation Version

However, Git stands out when compared to these options.

  • You don’t need to be online to save your work.
  • Multiple people can work on the same file independently.
  • Merging and resolving conflicts is built in, rather than avoided through locking.

3. Core Git concepts

Repository

A folder where all the files and history of a project are stored and tracked by Git.

As an example, we have repositories for each of our training courses.

Push

Send your locally saved changes to the shared project.

For example, if I make changes to the Developer course, I need to push these changes so that they are available for anyone else using that repository.

Pull

Get the latest changes from a shared online project and bring them into your local version.

For example, if Tess has made changes in the Content course repository, I need to pull these changes down to my local machine.

Branch

A separate copy of the project where you can safely test new ideas or make changes.

Branches are like a safe testing space where nothing breaks the main version until you're ready.

For example, if I need to make a change to a training course, but it is just for one organisation, I can create a new branch, and make changes there.

Commit

A saved snapshot of your changes, usually with a short message describing what you did.

Commit message

A short note to explain what has changed when making a commit and pushing changes.

Merge

Combine changes from a working branch back into the main project, so everyone's work comes together in one place.

Clone

Making a full copy of a Git project from another location onto your own computer - often from GitHub to your local machine.

4. A quick Git demo

I'm going to give you a quick demo of Git, using my local terminal.

In my case, I am using an app called iTerm2.

cd [drag folder] - change to the folder I need.

git status - shows me what has changed.

git diff - compares what has changed to what was there before.

git add [Filename] - adds file.

git add . - adds all changed files.

git commit -m "Adjust course aims content" - Commit with a message.

git push - Pushes changes to GitHub.

git branch - shows me all branches, and which branch I am in.

git branch test2 - create a new branch called "test2".

git checkout test2 - switch to this new branch.

git branch main - switch back to the main branch.

git log - shows all commits in detail.

git log --oneline - shows all commits as single entries.

q - quit the log and return to command line.

Before we move on to GitHub, does anyone have any questions?

5. What is GitHub?

GitHub is a cloud-based platform for hosting Git repositories.

It provides a central place for the code — one source of truth.

GitHub makes it easier to collaborate, especially on large or distributed teams.

It tracks who changed what, when, and why.

Key features:
  • Supports both public and private projects.
  • Enables global collaboration.
  • Provides detailed history and tracking.
  • Visualises contributions and activity.

As an example, all of our training course repositories are housed on GitHub.

6. Common GitHub features

Code view

The Github Code view is the main section of a GitHub repository where you can view the project's files and folders.

It shows the current state of the code, the commit history, and options to download or clone the project.

Here is the current code for the Intopia Developer course.

You can clone this repository under the green "Code" button.

You can see all open branches under the "Main" dropdown.

You can see the full commit history for the project by clicking on the "[Number] Commits" button.

Pull requests

A Github pull request is a way to ask for your changes to be added to a shared project.

It lets others review what you’ve done before those changes become part of the main project.

For example, you create a pull request that says:

“Fixed spelling mistake in the About page.”

Someone on your team reviews it, sees the fix, and chooses “Merge” to add it to the main version.

Some pull request examples on the WAI-ARIA repository.

Here is a pull request that has been approved.

Issues

A Github issue is a way to track a task, bug, question, or idea related to a project.

It works like a to-do item or a conversation thread for the team.

For example, you notice a button isn't working on the website .

You open an issue that says:

“Submit button on contact form doesn’t respond when clicked.”

The team can then discuss, assign, and fix the problem — all within that issue.

Some issue examples on the WAI-ARIA repository.

Here is an issue that has been actioned and closed.

Discussions

Discussions are a space for open-ended conversations within a project — like a forum.

They’re used for sharing ideas, asking questions, or starting community conversations that aren’t tied to a specific bug or task.

Here are the WAI-ARIA discussions.

Actions

Actions let you automate tasks like testing code, deploying websites, or sending notifications.

They run automatically when something happens in the project, like a new commit or pull request.

Here are the WAI-ARIA actions.

7. Common tools

Developers can use Git in many ways: through the terminal, inside their code editor, or through dedicated apps.

The command line is the most common and powerful way that developers use Git.

The command line option works on most platforms: macOS, Windows (via Git Bash), and Linux.

Most developers use Git together with a hosting platform like GitHub or Bitbucket.

While Git works perfectly on its own, using a hosted remote lets teams collaborate, share work, and keep everything in sync.

Online hosting platforms
  • GitHub
  • GitLab
  • Bitbucket

Developers often use code editors or development environments with Git built in.

This allows them to manage changes, commits, and branches directly inside the app. Some examples include:

Integrated development environments and editors
  • VS Code
  • JetBrains IDEs
  • Eclipse
  • Xcode (macOS)

For people who find Git too technical or intimidating, standalone Git apps provide a visual interface to perform common Git actions.

With these tools, there is no command line needed. Some popular tools include:

Standalone Git GUIs
  • GitHub Desktop
  • Sourcetree (by Atlassian)
  • GitKraken
  • Tower

How about a quick demo of GitHub Desktop?

8. FAQ

Do I need to know Git if I’m not a developer?

Not necessarily. But understanding how Git and GitHub work can help you collaborate better with developers, as well as W3C resources.

Can I break something by looking at a GitHub repository?

No. Viewing a repository or reading code won’t cause any changes. You need permission to make edits or suggestions.

Can GitHub be used for things other than code?

Yes! Some teams use it to manage documentation, design files, or even plain text projects — especially when they want version history or collaboration.

Is GitHub only for open-source projects?

Not at all. Many private teams and companies use GitHub to manage internal projects that the public never sees.

For example, many of Intopia's GitHub repositories are private - never seen by the public.

Questions?