Git is a powerful version control system that allows people and teams to collaborate on source codes more efficiently and effectively. It saves history, allows you to work on features or bugs in parallel, peer review code before saving it to production, and much more.
This post assumes that you know the basics of git, and serves as a simple cheat sheet. I may create another post in the future dedicated to the basics of git and cover more complex topics like
git rebase, but for now I think this will be helpful for others like myself that just want a simple reference sheet to the commands that we use most.s
Getting set up
git init- create a new git repository
git clone <repository address>- copies a repository from a website like GitHub to your computer, i.e.
git clone https://github.com/facebook/react.git
git remote add origin <repository address>- set up a new remote repository, i.e.
git remote add origin https://github.com/seanwlawrence/bulma-classnames.git
git push -u origin master- update new repository with your first commit, after doing this for the first time, you can simply use
git status- see if you have any files that have been changed or added to staging, helpful for checking where you're at before adding changes or making a commit
git add .- add all changed files to staging. Side note: if you want to only add specific files to staging, you can remove the
.and instead type out the file name, i.e.
git add index.html
git commit- commit all staged files
git push- update remote repository with your local commits
Updating your local repository
git pull- update your local repository with any new changes from the remote repository
Working with branches
git checkout <branch name>- switch to another branch, i.e.
git checkout bug/header-styling
git checkout -b <branch name>- create new branch and switch to it, i.e.
git checkout -b feature/new-branch
git branch- see a list of all the branches
git branch -D <branch name>- delete branch, i.e.
git branch -D chore/update-font-family
git merge <branch name>- merge two branches, i.e. merge the
feature/new-postbranch with the current branch
git merge feature/new-post
Viewing and deleting commits
git log- see all of your commits
git reset --hard <commit id>- deletes all history after the specified commit id and goes back to that commit, i.e.
git reset --hard l3jlkj4l534059808
There are a ton of other common commands that many developers use for working with git, such as
git rebase that I use pretty infrequently (since I prefer to use merges and usually only rebase when working on large open source projects like Mail for Good), but I left them out since they can get a bit complicated to explain and the experts at Atlassian do a much better job in their blog post on rewriting history in git. Happy coding! SL