Skip to main content

GIT And GIT Hub: Understanding It In Layman's Terms

My Happy 'Git' Face


FINALLY Getting To Understand Git & Git Hub

For almost a year I have been trying to understand the crazy world of Git and Git Hub.  To my amazement, not very many people could explain it to me in a way that made sense.  Then along came Maestro Marco... he was able to explain it in a way that was simple and easy to understand.

First things first.

What is Git?  


The proper definition is that 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.  (This definition is taken from the Git website)

What is Git in layman's terms?

Any directory on my computer can be tracked by GIT.  Any change I make to a directory or it's sub-directories is maintained by GIT.  I choose which directories I want GIT to track.  GIT will manage all changes I make to those directories. 

I put all of my project files in one directory, I tell GIT to track that directory, and any change I  make will be managed by GIT

Git does NOT track photos/images/sounds/media.

Git will store, restore, and share those files, when instructed to, to Git Hub (which allows people to work as a group in the same documents of a project).  

Where does Git put this backup?

It is called a repository.  Git makes a repository (it's a database) on my local computer.  Each directory tracked by Git has it's own repository.  Git will keep a record of all the changes that are made to the directories Git is tracking in the repository.

Let's say I have a directory called "Pina_Inc" that I am tracking.

It would look something like this: 

Pina_Inc.  -----> My current local directory
          Business-Contacts.txt   -----> file in the Pina Inc directory
          Equipment.txt   --------------> file in the Pina Inc directory
          Website.html -----------------> file in the Pina Inc directory
           Costs.xlsx --------------------> file in the Pina Inc directory
           Profits.xlsx -------------------> file in the Pina Inc directory
           .git  ---------------------------> hidden git directory (this holds the local git repository)


Let's then say that I made some changes to the Website.html file.  Once I save that file, I will need to add it to my GIT Staging area.  From there, when I issue a 'git commit' command, GIT will update my local repository will the new changes.  

The way I communicate with Git is through my command window

Here is a link to a post on commands for Git

What is Git Hub?

Again, the proper definition is that Git Hub is a code hosting platform for collaboration and version control.  Git Hub lets you (and others) work together on projects.  (This definition is taken from the w3schools.com website).

What is Git Hub in layman's terms?

Git Hub is Git but on a server instead of a local computer.  It is a web based service that also keeps a repository (backup database) of the directories (and files) you send it.  This way, one person or a team of people can work on those files at the same time, and save them to the Git Hub repository.  Git Hub is a great way to allow people to work on the same project (a project usually consists of many files).  As users type 'git push', they are synching their local Git repository to the Git Hub repository.


In Summary: 

Basically, Git and Git Hub work together.  Git is installed on your local computer and keeps a backup (repository) of your tracked directory on your computer, and Git Hub keeps a backup (repository) on the Git Hub Server. 


Check out my next post, where I write about the different areas GIT works in.


Follow me as I learn to build my website bit by bit!    IronTreeDev.com







  








Comments

Popular posts from this blog

XPATH and XPATH Expressions In XMLLINT

XPATH And XPATH Expressions Earlier, I told you about xmllint and xmllint for html files .  Let's say you just want to parse the <span> tags within your html file or just your <span lang="el"> tags? Enter:  Xpath. Xpath is yet another option available within the xmllint language. Remember, an Xpath is used to navigate through elements and attributes in xml and html documents.  Xpath uses Xpath Expressions to select nodes or node sets within a document. Example 1 .  Looking for all of the <span> tags within an html document. xmllint -- html -- xpath " // span" StedmanLesson10.html xmllint = This tells the command line that we are going to be using the xmllint language. space = because we always have space in between commands -- = Remember, these are the two hyphen-minus characters that we need to tell the command line that we are going to use an xmllint option. html = This is the xmllint option we want to

Back To The Basics

Click photo above to see photo clearly  It's Been A LOOONG Minute since I have coded!!   Even so, I decided to give JavaScript another try.  I always seem to do good and then when I get to this one area, I always seem to hit a brick wall.  Well....nothing like getting back up and trying again right?   I decided to try Rithm School's online JavaScript Fundamentals FREE course .  I have never joined their school but their free courses tend to explain things in a way my brain understands it.  💁 To let you know how much I have forgotten in the coding world, I couldn't even remember how to write the basic commands for an HTML document! Yesterday I started the fundamentals free course and I am so glad that I did.  Because of time, I only made it through the JavaScript History and Setup chapter, but that chapter was enough to get my memory flowing again!   It started to feel familiar and I quickly remembered why I enjoyed coding so much.  Yesterday and this morning, I just erased

SCP: Secure Copy Protocol

SCP = Secure Copy Protocol.  What is it and why is it important?   SCP provides a secure way to transfer files from one computer to another. For the project that I'm working on, I needed to SCP (send a copy) the XML files, as well as the image files, from my computer to my EC2 Instance (my web server).  Once done,  my teacher was be able to view my work via my website. Here are the steps to do this: 1.  Open two command windows (the program for my computer is called Terminal). 2.  Let's say the file I want to send is called "SallysFirstDate.xml" and it is located in the "tomy" folder.  Here is where that file lives: /Documents/path/tomy/SallysFirstDate.xml I need to first issue the command to "change directory"(cd) through each folder until I reach the folder that my file is located in.   It would look like this: cd /Documents THEN I need to "cd" again into the "path" folder: cd path THEN I need to "c