Introduction to Git

Introduction

Git is like a really epic save button for your files and directories - officially Git is called a version control system.

To compare, a save in a text editor would record all of the words of a document as a single file. You are only ever given one record of the file like essay.doc unless you make duplicate copies (which would be difficult to remember to do and keep track of):

essay-draft1.doc, essay-draft2.doc, essay-final.doc

A save in Git however, would record differences of files and folders AND keep a historical record of each save. This feature is a game changer. As an individual developer, Git enables you to review how your project grows and to easily look at or restore file states from the past. Once connected to a network, Git allows you to push your project to GitHub for sharing and collaborating with other developers.

While Git works on your local machine, GitHub is a remote storage facility on the web for all your coding projects. This means that by learning Git, you will get to showcase your portfolio on GitHub! This is really important because almost all software development companies consider the ability to use Git as an essential skill for a modern web developer to have; having a portfolio will provide proof to future potential employers as to what you are capable of.

In this lesson we will briefly explore the history of Git, what it is and what it’s useful for.

In the next lesson we will go over the basic workflow of using Git which should enhance your understanding and demonstrate why Git is so useful.

And finally, you will set up a project with Git and this will serve as a template for setting up your future projects.

But for now, in this lesson, try to understand what Git is and why it is so powerful!

Learning Outcome:

By the end of this lesson you should be able to:

Define what kind of program Git is
    • Git is a Version Control program.
Describe the differences between Git and a text editor in terms of what they save and their record keeping
    • Git tracks changes to the files and their contents.
    • A text editor can only make and save changes to a file
Describe whether Git and GitHub work at a local or remote level
    • Git works on a local level. Any changes you make are saved locally with Git.
    • GitHub works on a remote level. You must push your changes made locally (using Git) to Github
Describe why Git is useful for an individual developer and a team of developers
    • Git is useful for an individual to create snapshots of their work. If they realize halfway through that they've messed up, it's much easier to reset.
    • Git is useful for teams because it's capable of merging code together. One developer can be working on a part of code while a different developer works on a different part. They can then use git to combine the changes.

Assignment

  1. Read chapter 1 in this book about version control and appreciate the differences between local, centralised and distributed version control systems.
  2. Now watch this video about how git can improve the workflow of an individual or a team of developers.
  3. Get some context of how git and GitHub came about. Make sure you know the difference between the two: note how Git is referred to as a technology used in the command line while GitHub is a website you can visit
  4. If you haven’t, install Git on your computer. Remember this is one of the steps of our Installation lessons: * For Windows Subsystem for Linux in Installation Prerequisits * For Linux or MacOS in Project: Your First Rails Application
  5. Have a look at The Odin Project’s very own repository on GitHub - this is where all the lessons are stored!
  6. Finally, gain an appreciation of how git records all collaborative efforts and how GitHub visually represents this.

Additional Resources

This section contains helpful links to other content. It isn’t required, so consider it supplemental for if you need to dive deeper into something.

Web Development 101

Introduction to Git

Have a question?

Chat with our friendly Odin community in our Discord chatrooms!

Open Discord

Are you interested in accelerating your web development learning experience?

Get started

Thinkful

  • 5-6 months

    5-6 months

  • Job Guarantee

    Job Guarantee

  • 1-on-1 Mentorship

    1-on-1 Mentorship