What is Git?
Git is a version control software that allows you to keep track of changes to your project.
It allows you to keep a history of the changes you’ve made to a project
Why is this useful?
Bugs are typically introduced when new changes are introduced. Hence, being able to pinpoint when a bug occurred based on when the changes was made can be a time saver
You can also deploy your code to a remote server, such as Github, and other people can look at your code and contribute if they want to.
Window - use the installer
Mac - use the brew package manager to install
brew install git
Linux - use the terminal to install
sudo apt install git-all
Creating a new git repo
In your root project directory, run
Cloning a repository
cloning a repository is like making a contained copy a repository for personal use
git clone LINK_TO_GIT_REPO
Stage, Commit, and Push
There are 3 stages to deploying your change to a remote server.
- The first is staging.
Staging is the processing of adding changes to a file to a stage or an Index location
git add <filename>
you can also add all changes to the Index using
git add .
- The second step is committing these changes
Committing a set of changes, is simply a way of saying : I really want to keep these changes
git commit -m "first commit"
Note: you have to include a message with every commit using the
-m "your message goes here". The message should be descriptive of the changes you have made
You can also make multiple commits in a single workflow
Ideally, each commit should contain a set of related changes, such as a bug fix or a small feature
- The final step is making your changes visible in the remote server
git push origin master
If this is a new repository that you created locally, you have to add a remote server first before pushing
git remote add origin <link to the server>
Every time you create git repo, it automatically generates a branch called the master branch.
Given the name, the master branch is the most valuable and should always be the most up to date
A branch is just a copy of another branch.
here is how you can create a branch
git checkout -b <name of your new branch>
Assuming that you are in the master branch, this command will create a new branch from the master branch.
You can create a branch from any branch; it doesn’t have to be your master branch
you can switch between branches using
git checkout <name of your branch>
You can check the available branches as well as the current branch that you are in using
The current branch that you are in will have an
* before it
To switch back to the master branch, run
git checkout master
To delete a branch, run
git branch -d <name of branch>
Pushing a branch to the remote server
Did you noticed before how we push our changes to the remote server?
git push origin master
Here we are pushing the master branch to the
you can check the servers linked to the git repo by running
git remote -v
Turns out, you can push other branches to the remote server
git push origin <name of your branch>
Pulling changes from remote branches
Let’s say someone else made some changes and pushed them to the remote server.
How do you get those changes? (Please don’t say copy and paste…)
What’s the opposite of push?
This will do a
fetch and a
merge into the current branch
Fetching is the process of pinging the remote server for new changes, but doesn’t actually pull the changes to your local repo
Merging Will attempt to merge the new changes with your local repo
Sometimes you want to merge some changes from one local repo to another repo
You can do that by running
git merge <destination branch>
This will merge the current branch into the destination branch
When to create a branch?
If you are working by yourself on a small project, then branching might not be necessary.
However, it does start making sense or even become essential when you are working in a collaborative environment on a large scale project.
Each person can work on a separate feature or a fixing a different bug at the same time.
There is no need to wait for a person to finish their part before you can start working on yours.
A good rule of thumb is that each feature should be its own branch, typically called the feature branch.
Stick to a consistent branch naming convention, such as
git checkout -b feature/adddeletefunctionality
Similar for bugs,
git checkout -b bug/pagedoesnotload
Git Status and Logs
Sometimes you want to check the status of your git repo, such as files that are staged, run
You can also access the log by running
Introduction to node