When Should I Learn Git?

When Should I Learn Git?


Hello! I am currently working my way through FCC. I am almost done with my Responsive Web Design certificate after about 2 months. ( I am really proud of myself so far)

I know that I will eventually have to learn Git. However, I was curious when you all felt it would be most beneficial to learn? I am still polishing my HTML/CSS and want to make sure I put my best foot forward as I continue to learn. However, I do not want to overwhelm myself by trying to do something I am not ready to handle just yet.

I look forward to hearing everyone’s varying experiences with this!


So Git is a version control system as you know. In most computer science schools, one of the first things taught is how to use a version control system because it is the only thing preventing you from losing all your homework and project work if you make a mistake (or a system shuts down unexpectedly).
So if you’re just asking, when should I learn to use a version control system to manage my own files (versus when should I start contributing to open source), then the answer is, as soon as you have time to learn, learn.


Git is extremely useful early on because of its “oh--I-**-my-code-up-big-time” rollback ability. Even before you go beyond 1 single file of code, getting used to it and working it into your habits will save you loads of hours in case things go wrong later down the line.

At the very least, you should learn the principles of Git and use a GUI based interface. One such program is


Whenever people ask this question, it seems to me that they don’t really get what and why Git (or similar) are and why they would want to use them. I always point people toward Git and GitHub in Plain English because I think that once people know what it is and how it works, they know when they should be using it.

(I am also constantly sharing stuff like this with non-programmer people in my life. My holy commandments include “thou shalt embrace version control” and “thou shalt not save important work on a single physical device”.)


And you don’t even really need to know how to type out git, there are GUIs that will do all the hard work for you.


Well this is not always true. Many companies require that you use command line Git rather than a GUI.


That’s true, but I was trying to refer to the non-programmers using git. Sorry I wasn’t clear.


Just as a counterpoint, git is hideously complicated. When you need it, it is great, and it is absolutely necessary for doing any kind of software development where you have to work with other people on the same codebase, but it is a horrible bastard of an API.

When you are just at a novice level of learning, it is arguable whether dealing with that bastard is something you really want to put yourself through


I would at least by using git to back up your code, doing basic pushes and pulls. I think you should be doing that right away. Having a presence on github looks good to employers.

But that is just training wheels. There is a lot more you can do with git that is really complicated. Finding some really easy open source projects are a great way to start to understand some of the more advanced features. But I’d wait until I finished the front end sections, at least the first 3.


Unfortunatly, git is good only for “text” files because you can also see the actual changes to that file. for other file formats is useless.


It’s for version control of text files though, so 🤷


That’s why i said “Unfortunately” so no one may think that git its good for any kind of file.


Thank you all for the responses. The main reason I asked was actually due to trying Git and getting a bit overwhelmed. I wanted to make sure I wasn’t jumping the gun too soon.

I actually learned how to properly do a Git repository on my Github via VS code so I feel a little less overwhelmed now! I plan to start working through a Git tutorial once I finish up the last of my projects for my first certificate on here.


I would learn it as soon as possible. I truly have no idea what I was even doing with my files before I learned git. I’m assuming randomly copy/pasting folders with different version numbers like an unwashed barbarian.

Learning git on the terminal is best imo, but if it helps to use a visualization tool like gitkraken, do it! ANYTHING that helps you get started using version control.

I’ve started using it myself even outside of software development. You can use it to track changes, ANY changes, to ANY sort of file on your computer. (Although I’m probably kind of an overzealous version control maniac for doing this).

What you have to answer for yourself is this:

Am I ready to love myself?

If the asnwer to that is, “YES”, then you should start at least with basic version control.

I’ll give you a primer on a simple git workflow:

Situation: You are in a folder in your terminal and you want to start making changes, but you want to track those changes.

$ git init           // This initializes a new git repository

$ git add [file1]       // This adds a file you want to track [file1] in this case. 

$ git commit -m "Made changes!"         // Makes a commit. is effectively a "save as", the -m is short for "message"
$ git log      // This gives you a list of all your commits. 

You can sort of think of a “commit” as a snapshot in time, or using another analogy, you can think of it as doing a “save as” with the commit message being the new name of a folder.

Git only tracks the changes made.
This is really all you need to get started. It gets a lot more fun from there. You can roll back your changes, you can go back in time to a prior commit (“snapshot”) if you screwed the pooch and now your code doesn’t work for some reason, you can branch changes and merge them later, the benefits go on and on.

Also another thing, and I can’t stress this one enough.

Git ≠ Github !!!

Git is a technology used for keep track of code changes in a repository.
Github is a website that you can upload to that hosts code.

It is possible to use Git without using Github, or to use another site like Gitlab or Bitbucket to host your code.