====== Key Feature of GitHub ====== * Project list and Project Folder structure for store and sharing open source code and related docs * Key buttons for other people's Project (aka repository): * **Watch**: like subscribe a news feed, it will keep feed from that project development log * **Star**: like favorite or like or bookmark or rate a project, it will show in your star list, like bookmark in the browser * **fork**: get a copy of the project as one of your Project, then you can play and test on your own changes or optional submit your changes back to original project for their review and add-in * key buttons for your own Project * branch ====== GitHub common task ====== * move file to another path - click edit file, on the filename, just use /folder_path/file_name to change its location ====== Get Start with git command tool ====== * git is a command tool, which is used to talk to GitHub, which is the base function of all git GUI client. * download git: https://git-scm.com/downloads * for windows, I use the portable version there ===== Basic git Commands ===== * ref tutorial: https://youtu.be/0fKg7e37bQE - clone, get a copy from git server, like from GitHub cd /your_dir_to_store_the_copy git clone https://github.com/username/whatEverProjectName.git - status check, check what is changed inside current project folder git status - register file into changes in current project git add my_new_file.txt - register all changes into current project status log (locally) git commit -m "change log description text" - send changes back to original project foldergit push - get changes from original project foldergit pull ====== Problems and Solution ====== **Download Github sub folder only** * ref: http://stackoverflow.com/questions/7106012/download-a-single-folder-or-directory-from-a-github-repo * method 1: * get the SVN binary tool (subversion): https://www.visualsvn.com/downloads/ * command syntax 1 with export like clean public release (note: 'trunk' need put there to get it work): svn export https://github.com/{user}/{proj}/trunk/{subdir} {local_dir} * command syntax 2 with checkout that keeping .svn version info svn checkout https://github.com/{user}/{proj}/trunk/{subdir} * note: * subversion local folder preference location (normally hidden by default): ./.svn * subversion preference location: ~/.subversion/config /etc/subversion/config %appdata%\subversion\config %appdata%\roaming\subversion\config * method 2: online sub folder generator * https://minhaskamal.github.io/DownGit/#/home ====== Cool Github repo ====== * 3d related: * https://github.com/AtixCG/Universal-3D-Shortcuts