Clone an existing repository
$ git clone ssh://
Create a new local repository
$ git init

Local Changes

View changed files in working directory
$ git status
Add all current changes to next commit
$ git add .
Add some changes to next commit
$ git add -p <file>
Commit previously staged changes with message
$ git commit -m 'message'

Commit history

Show all commits, starting with newest
$ git log
Who changed what and when in a file
$ git blame <file>

Branches and tags

List all existing branches
$ git branch -av
Switch HEAD branch
$ git checkout <branch>

Update and publish

List all currently configured remotes
$ git remote -v
Download changes and merge into HEAD
$ git pull <remote> <branch>
Publish local changes on a remote
$ git push <remote> <branch>

Merge and rebase

Merge branch into your current HEAD
$ git remote -v
Rebase your current HEAD onto branch (not for published commits)
$ git rebase <branch>


Discard all local changes in working directory
$ git reset --hard HEAD
Discard local changes in a specific file
$ git checkout HEAD <file>
Revert a commit
$ git revert <commit>

Setting up profile

Using username
$ git config --global \'YOUR_USERNAME\'
Using email
$ git config --global YOUR_EMAIL_HERE
Checking you config settings
$ git config --list
Last modified 3yr ago