git

This content is under construction.

We have numerous Starter Guides to help you use git, both on and off of Anvil. If you are new to using git on Anvil, first see the "Setup git on Anvil" Starter Guide, then "git CLI on Anvil" will explain how to make code changes.

What is git?

git is a powerful version control software written by Linus Torvalds, the inventor of the Linux kernel. git has a reputation for being complicated and confusing. While there may be some truth to this, git is used extensively in industry, and is relied upon by many of the applications being developed today.

While there are certainly advantages to understanding git in detail, it is unnecessary for many projects. It is possible to get the "gist" of git by learning some basic terminology, workflows, and how git fits into a regular data science or software project. For this book, this is our goal. We want to provide you with the smallest amount of information that allows you to incorporate git into your project, or helps you feel comfortable using git in an already established project. If you want to take a deeper dive into git, check out the resources section below.

git vs. GitHub

While git may be largely synonymous with GitHub, they are distinct things. git is a piece of software running on your computer — your local system. You can use git without using GitHub (or another host like GitLab). git works just like other familiar programs like grep or sed. Like grep or sed, you can read about the commands and options by reading the man (short for manual) pages.

man git

Microsoft’s GitHub, however, is a software development and version control platform, hosted online. git is a complicated tool, and platforms like GitHub aim to make using git as pain-free as possible. It is free and easy to create a GitHub account. Other competing platforms include: GitLab, sourcehut, Gitea, and Bitbucket. Each platform has their advantages and disadvantages, but all largely serve the same purpose.

Resources

A glossary with common git and GitHub-related terminology.

An interactive in-browser game to help learn about git and git branching.