The git command-line utility has plenty of inconsistencies http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git/
A GUI like http://sourcetreeapp.com is often helpful, but staying on the command line usually quicker. This is a list of the commands I use most frequently, listed by functional category:
git status					list which (unstaged) files have changed
git diff						list (unstaged) changes to files
git log						list recent commits
git add fn					stage file
git commit -m 'message'			commit file
git commit -am 'message'		add/commit all changes from all tracked files (no untracked files) in one go
http://git-scm.com/book/en/Git-Tools-Rewriting-History
git reset filename				unstage file
git commit --amend -m 'message'	alter the last commit (add any staged files, new comment)
git reset --soft HEAD^			undo previous commit, put changes in staging
git reset --hard HEAD^			Undo last commit and all changes
git reset --hard HEAD^^			Undo two (^^) last commits and all changes
git checkout -- cats.html index.html	Undo all changes that were made to files cats.html and index.html
git rebase --onto <commit-id>\^ <commit-id> HEAD	remove specific commit from repository. the \ in ^ is just an escape   char to make zsh play nice and is not necessary if using bash.
git remote add origin [email protected]:example/petshop.git add a remote repository
git push -u origin master			push current local repo to remote. -u sets it to default for the future
git remote -v show				show the available remote repositories that have been added
git remote show origin			show local<->remote branch tracking and sync status
git remote -v update				bring remote refs up to date (and -v show which branches were updated)
git pull						checkout and merge remote changes in one go
git fetch origin						update the local cache of the remote repository
git status -uno will tell you whether the branch you are tracking is ahead, behind or has diverged. If it says nothing, the local and remote are the same.
git show-branch *master will show you the commits in all of the branches whose names end in master (eg master and origin/master).
git log HEAD..origin/master --oneline shows commit messages
git diff HEAD..origin/master shows all changes on remote compared to local HEAD
git branch						list currently existing branches
git branch [branchname]			create new branch
git checkout branchname			move to that branch
git checkout -b branchname			create and checkout new branch in one go
git branch -d branchname			remove branch
git checkout master; git merge branchname;	conditions for fast-forward merge - nothing new on master between branch start/end points
git fetch origin``git branch -r 		list remote branches (after a fetch)
git push origin :branchname		delete remote branch 'branchname'
git remote prune origin			clean up deleted remote branches (let's say someone else deleted a branch on the remote)
git remote show origin			show local<->remote branch tracking and sync status (duplicate info under "remote repositories")
git push heroku yourbranch:master       simple form
git push heroku-staging staging:master 	(localBranchName:remoteBranchName)
git tag	list all tags
git checkout v0.0.1	checkout code
git tag -a v0.0.3	-m 'Version 0.0.3'	add new tag
git push --tags	push new tags to remote
http://stackoverflow.com/questions/540535/managing-large-binary-files-with-git
http://git-annex.branchable.com/walkthrough/ #see ssh section
git annex add mybigfile
git commit -m 'add mybigfile'
git push myremote
git annex copy --to myremote mybigfile this command copies the actual content to myremote
git annex drop mybigfile  remove content from local repo
git annex get mybigfile   retrieve the content
git annex copy --from myremote mybigfilespecify the remote from which to get the file
I think this line:
git show remote originNeeds to be changed to:
git remote show origin