Welcome to my article. I’ll be sharing how to get started with Git and GitHub. This is a comprehensive guide covering all the what’s and why’s of Git and GitHub along with free resources.

About me

I just completed my undergraduate in Computer Science and Engineering from a tier 3 college which you might have not even heard of. Moreover, I’ve got acceptance from 7 US universities for pursuing my Master’s in Computer Science.

Currently, I work as a full-time for a California based startup called . I’ve also acted as a at where I worked with over 50 collaborators from 19 countries, developing a Machine learning solution for identifying malnutrition in children — a problem affecting over 200 million children.

Purpose of this article

I’ve seen myself, several students, and many entry-level programmers getting confused about and . I always used to have questions like what exactly these tools are, why are they even used, what’s the difference between this Git and Github and why does everyone keep stressing about the importance of learning them.

The purpose of this article is to address each of these questions that come and to provide a roadmap for learning Git and GitHub, absolutely free of cost.

Table of Contents

  • What is Version Control?
  • What is Git?
  • What is GitHub?
  • Why use Git and GitHub?
  • Git vs. GitHub: What’s the difference?
  • Git and GitHub in simple words with an example
  • Free resources for learning Git and GitHub
  • Suggested Learning Path

What is Version Control?

Software or Development projects don’t just come into life directly. They are built code line upon code line from the ground up and there’s a lot of trial, error, and correction that harmonizes into building something that actually works the way it’s supposed to.

Version control is responsible for managing changes to computer programs, documents, large web sites, or other collections of information.

A version control system(VCS) basically gives you the power to review and even restore earlier versions of your development work.

  • Let’s consider that you’re working on a web development project, and through the course of your reviews and revisions, you abruptly notice all of your text has become misaligned.
  • It can be because of some change that you made somewhere else.
  • But not to worry, this is where version control comes in.
  • Instead of having to crawl back and checking every line of code, you can just use your version control system to reload your earlier saved version, until you locate the trouble-making change and correct it.

What is Git?

Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git is basically used for tracking changes in any set of files, originally designed for coordinating work among programmers collaborating on source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

Git is installed and maintained on your local system.

What is GitHub?

GitHub is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.

GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.

GitHub is exclusively a cloud-based service.

Why use Git and GitHub?

Git is the most popular version control system out there.

Version control is the only plausible way to keep track of changes in code, software development/web development projects, and many other things that we programmers do daily.

Github is like Instagram for programmers.

Every programmer is literally out there on GitHub. You can look at what other programmers, companies or organizations are working on and can easily study their code and make suggestions or changes.

Git vs. GitHub: What’s the difference?

Git is a version control system that lets you manage and keep track of your code history and GitHub is designed as a Git repository hosting service.

Git is a software while GitHub is a service!

While Git is a command-line tool, GitHub provides a Web-based graphical interface.

Git and GitHub in simple words with an example

  • While working on a project with a large team, all team members will be working on the same project but each of you will be having a different version of the same project.
  • Suppose you have made changes in the project directory on your machine and you want to send those changes to your collaborators and you also want the changes they make to appear directly in your machine’s project directory.
  • Because when many collaborators simultaneously work on the same project, it is very crucial to be on the same page with your teammates to avoid any type of conflict.
  • So, how you will do that?
  • This is where Git comes into the picture.
  • Using you work on the same copy as your team member. But the copy on which you will be working, won’t reflect any of the changes in the main directory unless and until you your collaborator’s changes and back your own changes.

Don’t worry about the jargons like push and pull. There are plenty more proper terminologies that you’ll learn in the tutorials. But for now, just consider a sending the recent changes from your local directory to while the grabs any changes from the repository and merges them into your local directory.

A is nothing but a and a folder is nothing but storage space where your projects can live.

  • But, how will you push and pull these changes?
  • This is where comes in.
  • GitHub is basically a place to store your working directories or repositories. It is literally a hub for the Git repositories which you can access anytime via your GitHub account.
  • These accounts come with an abundant storage space where you can store your repositories and build a proper profile that holds great value.
  • By default the repositories are public i.e., everyone can see your codes but you can make it private as well. So if you are a good coder you can upload your own applications and programs and get recognition from others.

GitHub can host your project’s source codes in various programming languages and keep the track of each and every changes made to every iteration.

Free resources for learning Git and GitHub

(Just click every and you’ll be redirected to that respective page. Also, all the resources that I’ll be mentioning are.)

You need to know how to work with the terminal when it comes to programming, especially Git. Make sure you have good hands-on practice with all the shell commands.

A shell is a computer program that presents a command line interface which allows you to control your computer using commands entered with a keyboard instead of controlling graphical user interfaces with a mouse/keyboard combination.

Udacity’s Shell Workshop Homepage

This course is a quick, one-lesson introduction to the Unix-style command-line environment. This course is intended to get you up working on the shell — using a terminal, managing files and directories, and running command-line programs.

Shell Workshop — Course Curriculum

This Richard Kalehoff course covers the essentials of using Git. You’ll be able to create a new Git repository, commit changes, and review the commit history of an existing repository. You’ll also learn how to keep your commits organized using tags and branches and you’ll master the art of merging changes. You will also learn how to edit commits, revert changes and even delete commits.

Udacity’s Version Control with Git Homepage

Richard is an amazing, amazing teacher. The way he explains every concept is just way too good. Hands down the best. This course will get you started with everything you need to know about Git.

Version Control with Git — Course Curriculum

As of today, 28th January, this course is currently unavailable on Udacity’s website and I have absolutely no idea why. This was another wonderful course by Richard which essentially starts right after his Git course.

Nevertheless, I’ve mentioned the link for the overview of that course so that you will get an idea as to what this course actually covered. It was basically a short course but technically a very sweet and on point course on GitHub.

Udacity’s GitHub & Collaboration overview page

You will have to dig deep on the internet and see if you can find this course from somewhere.

GitHub and Collaboration — Course Curriculum

This wonderful course by Gwendolyn covers everything about Git and GitHub, right from what is Git, version control, Technical jargon to all the commands in Github.

Gwen’s Git and GitHub for Beginners crash course on freeCodeCamp’s Youtube channel

This is essentially a Crash course. Even today, whenever I tend to revise Git and Github for an interview or anything related, I always go for this 1-hour long video. Simply excellent.

If you’re someone who’s not that comfortable with an American accent, I’ll suggest this channel. Navin is an experienced tutor who explains each concept pretty concisely.

In this 1 hour long video, Navin has covered everything in-depth, right from creating an account on Github to explaining and demonstrating all of its features as well.

Navin’s Git/GitHub Tutorial for Beginners on his Youtube channel

Suggested Learning Path

I’ll sum up everything for you so that there’s absolutely no place for doubts. The learning path that I’ll suggest is that,

  • Start with the . Learn all the shell commands there. This will be important as Git is a command-line tool so, you’ll need to have hands-on knowledge about the terminal.
  • Next will be the Udacity’s .
  • Now, with all the newly gained skills, you will be good to go to learn Github. This is where you should go for Udacity’s .
  • If for any reason, the course remains unavailable or you are unable to find it on the internet, you should proceed to by Gwen Faraday.
  • Make sure that you’re . Go get a register and write everything down— right from definition, syntax, use cases to code as well. After that, write it down on the code editor/terminal as well and see how your program runs, see how your code behaves, and what common mistakes you make while writing Git and GitHub commands.
  • Last but not the least, make sure you revise everything at least once biweekly.

Take your time!

Everyone learns at a different speed.

All these tips and techniques that I mentioned here in this article is what I’ve learned from my learning journey over the years. I want you all to at least try them for like once and see if these techniques work for you as well or not.

If you find this article to be helpful, do follow mefor more such amazing articles and share them with your friends as well. I’ll be writing articles, tutorials, projects, and a lot more posting one, almost every month. Till then, Keep learning. Cheers!

Also, Do check out my Three Part Series on Getting Started for Python, Machine Learning and Deep Learning with free resources.

To connect with me or for any difficulties, I’ll be very much obliged to help. You can find me here on .

Machine learning and Deep learning practitioner | Python development | Competitive programming

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store