Improve depth option to clone repos.
Enable switching protocol when update (git pull).
Refactored.
Separate to file. And fix some bugs.
Add feedback.