I have started using git and here are some of my frequently used commands.
git clone http://path/to/repo.git # Retrieve a repo for work (auto checkout master branch into WorkingDir) git init # Create new repository for work (auto checkout master branch into WorkingDir) git init --bare # Create new repository without WorkingDir - bare repo for server share only git status # Print current status of the repo git branch -a # List of all branches (including remote branches) git tag # List of all tags git log -3 # Show last 3 commits git log -30 --oneline # Show last 30 commits one per line git log --decorate --graph --format='%h %an %s' # Show all log messages one per line in a graph git log --reverse |head # Show first commit message git show --stat <sha1> # Show what files changed on a commit git diff # Show diff all files between Index and WorkingDir git diff readme.md # Show diff of a file against Index git diff master..topic # Show diff between two branches git checkout -b topic # Create a new topic branch and set as current branch (New branch starts from previous checkout branch) git checkout -b topic origin/topic # Create a new topic branch and set as current branch (New branch starts from origin/topic "remote" branch) git branch --move topicA topicB # Rename a branch git branch -d topic # Delete a branch (use -D to force it) git checkout master # Switch to master branch and set as current branch git merge topic # Merge changes from topic branch onto current branch git add . # Add files to Index git add readme.md # Add one file to Index git add -A # Add everything to Index git commit -m 'topic: my change' # Commit Index changes git mv oldfile.md newfile.md # Rename a file git rm outdated.md # Remove a file from Index and WorkingDir git rm --cached outdated.md # Remove a file from Index only (leave it in WorkingDir) git remote add origin http://path/to/repo.git # Setup remote repository git remote set-url origin http://path/to/repo.git # Update remote repository git remote -v # List remote repositories git push --set-upstream origin topic # Push branch to remote first time git push # Push branch to remote second time git push --all # Push all the branches to remote! git push origin :topic # Push and DELETE the remote branch! git pull # Fetch and merge the "auto tracked remote" branch onto current branch git fetch # Fetch only the "auto tracked remote" branch onto current branch git checkout # Restore WorkingDir from Index (will not override local modified files!) git checkout -- readme.md # Restore a single WorkingDir file from Index git reset # Reset the HEAD and Index (same as --mixed) git reset --soft # Reset the HEAD only git reset --hard # Reset the HEAD, Index and WorkingDir! git reflog # Inpect any recent transactions and can be use to recover lost (unnamed) commits git stash # Put away all pending changes git stash pop # Bring back all pending changes git stash list # List all stashes