My experiments with git and github

What is git?
gitandgithub-image1A few years back I heard about this super awesome distributed version control tool that did not need me to be connected to the server all the time I was working on code (I was/am a TFVC/Azure Devops user). So not being connected to the server sounded really cool because that was not the case for me. I not only had to have Visual Studio open but also have the files checked-out before I could start working on them. So a version control system that kept track of the files as I made changes to them along with me not being connected to the server was awesome. And its free? What? So code stays on my laptop under version control… what if I lose my laptop or it crashes? How do I share my work with others? Do I lose all the work? Is there a centralized repo? Enter github.

What is GitHub?
An online repository for your local git repository. Kind of like the server location of your local repository (as long as you’ve added them. More later in use cases).

How do the two tie up? Do I need both to be set up?
Both could be set up individually without depending on the other. However, once the setup is done, it is a good idea to tie them up when you have to work on your code on your laptop and save it elsewhere.
There is a lot of good documentation around git, and I refer to that from time to time.
For the purpose of this exercise, I am going to create a folder and use that as my sandbox. C:\MyTemporaryGitSandbox

UseCase: Setup a GitHub profile
Please visit to create your profile.

UseCase: Setup a new remote repository in GitHub
(you need to have a GitHub profile already created)
After creating a profile or after logging in, at the far top right corner, you will see an option to create a repository


This is like creating a server location for your project with a unique name. Also, notice that this repository gets created under your user id.
The setup is quite intuitive and easy to understand. Now let us install git on our local (laptop).

UseCase: Install and set up git on your computer …installation is quite simple and easy to follow.
Once installation is done, open a command prompt and type the following command:

git --version

(-if you are familiar with vs code and prefer using the terminal (Ctrl+`) and type in same command)
This will list the version of git that is installed on your local.
After checking the version lets create your local git profile. You do that by the following commands:

git config --global "FirstName LastName"

git config --global youremailid

Once done, check your local configs by the command:

git config --list

This will list all the settings that git will be using for your local repository.
So up until this point you have a remote github repository created and you have a installed and configured git on your local. Now lets checkin some code into our local repository.
UseCase: How do I add/checkin code to my local git repo?
I created a folder inside the sandbox folder after navigating there, ran following command:

git init


Behind the scene, a new Git repository was created in FirstGitProject folder along with a .git hidden folder. There is a .config file that stores information related to this repository.
After initializing an empty git repository, I ran the next set of commands which pertain to creating a file and then committing the changes into my local git repository.
These set of commands created a file and checked that into my local git repository.

git add

git commit -m "first commit"

To check your commit history, type in the command:

git log --oneline

In this case, since there is only one commit, we are seeing that. Now we are going to upload our code from our local git repo to a remote repo and for that we need to first link them.

UseCase: Link your github repo with your local git repo
When we created a remote repository in github we landed on a page somewhat similar to:
To link our local empty repository with our remote repository run the command:

git remote add origin

gitandgithub-image9This updates the config file in our local git repo as shown below:
next we run the command:

git push -u origin master

gitandgithub-image11This adds more details to our config file in our local git repo:
With this change we have successfully pushed out local changes to remote github repository. You may check that in your remote repository.
Note: If you try to add a remote repository without having a local git repository setup this should throw an error:
This means that we need to have a local repository created before we can link that to our github remote repository. Go to  UseCase: How do I add/checkin code to my local git repo?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s