/**
*/
$ git diff //view the differences, to see what you have changed.
//onces you have commit the files, you run this again
//you will see empty
//but if you do want to see what is the difference
$ git diff --staged //View staged differences
/*Unstaging files*/
$ git reset HEAD README.txt //unstage teh file, HEAD refers to the top file in the MASTER timeline
/*Discard changes*/
$ git checkout -- README.txt index.html //discard changes in index.html and readme.txt
$ git status
nothing to commit (working directory clean)
/*SKIP Staging and commit*/
$ git commit -a -m "This both add to stage then commit files" //Add changes form all tracked files
/*Undoing a commit*/
$ git reset --soft HEAD^ //--soft: Rest into staging
//HEAD^ : Move to commit before 'HEAD'
/*Adding to a commit*/
$ git add todo.txt
$ git commit --amend -m "Modify readme & add todo.txt." //whatever has been staged is added to last, means you don't create a new commit, just work on the last one
$ git reset --hard HEAD^ //undo last commit and all changes
$ git reset -- hard HEAD^^ //undo last 2 comments and all changes
/**HOW TO SHARE**/
$ git remote add origin https://github.com/zhentiw/Question.git
//origin: our name for this remote
//https://github.com/Gregg/git-real.git: address
/*To remove remotes*/
$ git remote rm <name>
/**/
/*Show remote repositories*/
$ git remote -v
/**PUSHING TO REMOTE**/
$ git push -u origin master //master is local branch to push
//-u : menas next time when you want to push the file, u can just use "git push"
/**PULLING from remote**/
$ git pull //get changes by others