🐙Git

summarizing everyone's (least) favourite software version control system

Git allows software developers (and even anyone who works with any kind of data) to share bundles of files in repositories:

  • Each person can have a local repository (aka version)

    • they can then push that to a remote repository (typically on GitHub.com)

  • Many people can work on the same remote repository

  • Everything magically gets merged based on changes called diffs...

    • ...unless a conflict happens in which case developers typically resolve the conflict (or pull their hair and/or skin out)

When things run smoothly enough, Git can feel like the most useful thing in the world as it:

  • tracks changes

  • allows us to rollback changes

  • shows who did something, line-by-line

  • simplifies code review by a lot

  • promotes open source development

Git basics

To "get by with Git", one just needs to know "the flow" in addition to these actions:

  • Cloning

    • copying a repository to one's own "local" computer

  • Initializing

    • starting a local repository

  • Staging

    • preparing changes to a local repository for a commit

  • Committing

    • confirming changes to a local repository

  • Pushing

    • sending committed changes from a local repository to a remote repository

  • Pulling

    • "fetching" changes from a remote repository to a local repository

  • Branching

    • creating a separate sub-version ("checking out a new branch") of a repository

  • Merging

    • requesting an integration of a sub-branch into the main branch

    • confirmation of this merge usually via a "pull request approval"

Many more idiosyncratic terms in the Git universe exists so we will try to cover them in this series!

Last updated