Git is the open source distributed version control system that facilitates GitHub activities on your laptop or desktop. This blog post summarizes commonly used Git command line instructions for quick reference.
Git for All Platforms
Git distributions for Linux and POSIX systems are also available on the official Git SCM web site
Configure user information for all local repositories
$ git config --global user.name "[name]"
Sets the name you want attached to your commit transactions
$ git config --global user.email "[email address]"
Sets the email you want attached to your commit transactions
$ git config --global color.ui auto
Enables helpful colorization of command line output ( you can skip this if you want )
When starting out with a new repository, you only need to do it once; either locally, then push to GitHub, or by cloning an existing repository.
$ git init
Turn an existing directory into a git repository
$ git clone [url]
Clone (download) a repository that already exists on
GitHub, including all of the files, branches, and commits.
This is one of the most important things to set-up git and GitHub. I'll recommend you to follow these two pages of official GitHub documentation to genarate and add SSH keys.
✅ Generating a new SSH key and adding it to the ssh-agent
✅ Adding a new SSH key to your GitHub account
Synchronize your local repository with the remote repository
$ git add [file]
To add file to stage. Mostly you will be using
git add . to add all file at once
$ git commit -m "commit message"
All the file changes that are on the stage will be commited ( saved ) in local git repo after this command.
$ git status
To check current status of repository.
To add a new remote, use the git remote add command on the terminal, in the directory your repository is stored at.
The git remote add command takes two arguments:
A remote name, for example, origin
A remote URL, for example, https://github.com/user/repo.git
$ git remote add origin https://github.com/user/repo.git # Set a new remote $ git remote -v # Verify new remote > origin https://github.com/user/repo.git (fetch) > origin https://github.com/user/repo.git (push)
to push the changes to remote repo for first time use the following command
$ git push [remote] [branch] -u
✓ Remember -u is used only when pushing for first time later on you can simple use
$ git push [remote] [branch]
Uploads all local branch commits to GitHub
$ git fetch [remote] [branch]
Downloads all history from the remote tracking branches
$ git merge
Combines remote tracking branch into current local branch
$ git pull [remote] [branch]
Updates your current local working branch with all new
commits from the corresponding remote branch on GitHub.
git pull is a combination of
git fetch and
Sometimes it may be a good idea to exclude files from being
tracked with Git. This is typically done in a special file named
.gitignore . You can find helpful templates for
.gitignore files at github.com/github/gitignore.
Branches are an important part of working with Git. Any
commits you make will be made on the branch you're currently
“checked out” to. Use
git status to see which branch that is.
$ git branch [branch-name]
Creates a new branch
$ git checkout [branch-name]
Switches to the specified branch and updates the
$ git merge [branch]
Combines the specified branch’s history into the current branch. This is usually done in pull requests, but is an important Git operation.
$ git branch -d [branch-name]
Deletes the specified branch
git: an open source, distributed version-control system
GitHub: a platform for hosting and collaborating on Git repositories
commit: a Git object, a snapshot of your entire repository compressed into a SHA
branch: a lightweight movable pointer to a commit
clone: a local version of a repository, including all commits and branches
remote: a common repository on GitHub that all team member use to exchange their changes
fork: a copy of a repository on GitHub owned by a different user
pull request: a place to compare and discuss the differences introduced on a branch with reviews, comments, integrated
tests, and more
HEAD: representing your current working directory, the HEAD pointer can be moved to different branches, tags, or commits