GitHub - Code hosting platform for developer. Free for public project.
Distributed Version Control System - Same file in local PC.
Trunk Based Development - Suppose you release 3.8 and now want to release 4.1 version but still not completed. Your stable 3.8 version and create a branch and update until version 4.1 is finished. When 4.1 is completed then merge it.
Series - Repositories, branches, commits, and Pull Requests.
Code Maker Wants - Version, team work, improvement Analysis and historical flow.
GitHub Platform - github.com
GitHub Lab - gitlab.com. Not free but use bitbucket.org for free.
Requirements - Email account.
Repository - A single project. Combination of files, image and so on. REDME file recommend. When create repository check 'initialize this repository with a REDME' for automatically create READNE.MD file.
New branch  - When we change (commit) something (insert, update, delete, whatever) it create a new branch. Suppose you delete something in branch but you find that file on master directory. Work on branch and finally marge with master branch. Don't work on master branch.
Master branch - Default branch name. Points last commit. The core path. Don't rename this folder.
Pull Request - Every one see what is the final change on master path. List of everything changes.
gitignore file - Some files aren't necessary to save to a server. We don't want people download those files. Gitignore file is the perfect way that tells what files are unnecessary.
gitignore file structure - Every line is ignored in gitignore file. a) .doc -- ignore doc file b) *.doc -- ignore all doc file c) /ept -- ignore ept folder. d)tle.png --specific file.
Push - Adding/modifying files in public repository.
Fetching - Downloading.

Git Bash Commonly used windows command (git-scm.com)
  1. Change directory: $ cd /c/myFile
  2. Folder items: $ ls
  3. Clear code: $clear
  4. Repository(like inside myFile folder)
    1. Initialize/create git repository (current folder): $git init myRepository {git init [repository name]} --folder creates with .git folder.
    1. Then go to Repository directory/folder: cd reositoryName
    2. Information about repository directory/folder: $git status
  5. Create file using notepad (windows)
    1. $notepad README.md
  6. Add/modify files to staging area
    1. $git add .
    2. $git add [file name]
  7. Add/modify/delete files to staging area
    1. $git add --all
  8. Commit (snapshot)
    1. Commit: $git commit
    2. Commit with massage: $git commit -m "[commit-massage]"
    3. Commit history: $git log 
  9. Quit
    1. $q
  10. Combination of add and commit
    1. $git commit -a -m "comment"
  11. Branch
    1. Branch info: $git branch
    2. Create New Branch: $git branch [branch_name]
    3. Switch Branch: $git checkout brachName
    4. Create New Branch and checkout: $git checkout -b brachName
    5. Delete Branch: $git branch -d branchName 
    6. Marge with master: $git merge master
  12. Master marge with branch [directory path master]
    1. $git merge branchName
  13. Local repository to remote repository [Bitbucket/GitHub]
    1. Create a repository in Bitbucket/GitHub
    2. Nickname the url: $git remote add [myCustomNickName] [URL]
    3. Show url nick name: $git remote
    4. $git push -u origin master [with username/password] - $git push -u myCustomNickName master
  14. Bitbucket to local repository
    1. $git clone [link]
  15. .gitignore
    1. Create .gitignore file - $touch .gitignore
    2. Add/Edit .gitignore file using notepad.
    3. $git add .
    4. $git commit -m "..."
  16. SSH keys
  17. Prompt massage meaning
    1. Initialized empty Git repository in [url] - Successfully run $git init myRepository.
    2. on branch master - Currently on master path(run branch master)
    3. Initial commit: actually not committed.
    4. Untracked files: Need to add. Use "git add".
    5. Changes to be committed - You only use $git add . but $git commit is not executed. Actually commit is not executed.
    6. No commits yet - you change something in folder but not committed so use $git add . and $git commit. .
    7. nothing to commit, working directory clean - In that folder everything is committed.
    8. nothing added to commit but untracked files present - use $git commit after $git add .. "
    9. Untrack files - Suddenly paste some files but not committed. Solve  $git add . and $git commit.
    10. Changes not staged for commit - $git add not executed.
    11. 1 file changed, [3] instructions(+) create mode .... readme.md - Successfully readme.md file is change/created and saved.
  18. GitHub Desktop For UI (desktop.github.com)