git help --all
usage: git [--version] [--help] [-C ] [-c name=value]
           [--exec-path[=]] [--html-path] [--man-path] [--info-path]
           [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
           [--git-dir=] [--work-tree=] [--namespace=]
            []
available git commands in '/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core'
  add                       clone                     fast-import               interpret-trailers        notes                     remote-testsvn            submodule
  add--interactive          column                    fetch                     log                       p4                        repack                    subtree
  am                        commit                    fetch-pack                ls-files                  pack-objects              replace                   svn
  annotate                  commit-tree               filter-branch             ls-remote                 pack-redundant            request-pull              symbolic-ref
  apply                     config                    fmt-merge-msg             ls-tree                   pack-refs                 rerere                    tag
  archimport                count-objects             for-each-ref              mailinfo                  patch-id                  reset                     unpack-file
  archive                   credential                format-patch              mailsplit                 prune                     rev-list                  unpack-objects
  bisect                    credential-cache          fsck                      merge                     prune-packed              rev-parse                 update-index
  bisect--helper            credential-cache--daemon  fsck-objects              merge-base                pull                      revert                    update-ref
  blame                     credential-osxkeychain    gc                        merge-file                push                      rm                        update-server-info
  branch                    credential-store          get-tar-commit-id         merge-index               quiltimport               send-email                upload-archive
  bundle                    cvsexportcommit           grep                      merge-octopus             read-tree                 send-pack                 upload-pack
  cat-file                  cvsimport                 gui--askpass              merge-one-file            rebase                    sh-i18n--envsubst         var
  check-attr                cvsserver                 hash-object               merge-ours                receive-pack              shell                     verify-commit
  check-ignore              daemon                    help                      merge-recursive           reflog                    shortlog                  verify-pack
  check-mailmap             describe                  http-backend              merge-resolve             relink                    show                      verify-tag
  check-ref-format          diff                      http-fetch                merge-subtree             remote                    show-branch               web--browse
  checkout                  diff-files                http-push                 merge-tree                remote-ext                show-index                whatchanged
  checkout-index            diff-index                imap-send                 mergetool                 remote-fd                 show-ref                  write-tree
  cherry                    diff-tree                 index-pack                mktag                     remote-ftp                stage
  cherry-pick               difftool                  init                      mktree                    remote-ftps               stash
  citool                    difftool--helper          init-db                   mv                        remote-http               status
  clean                     fast-export               instaweb                  name-rev                  remote-https              stripspace
git commands available from elsewhere on your $PATH
  loglive
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help ' or 'git help '
to read about a specific subcommand or concept.
                    
                        So we know that git history is a graph, right? And 
                        This graph that we created has to be stored somewhere, right? 
                        This graph is stored in a .git folder 
                        Every folder on your computer that has a .git folder is git repository.
                        There is only one such .git folder in a git repo.
                        all git commit does, is add content to that .git folder.
                        and git commit is only just one function that git provides
                        what if you wanted to do more, like manipulate an existing snapshot, delete a set of changes, reorder your history. 
                        git offers you other tools to do that.
                        git is essentially a toolkit that contains a bunch of functions that help organize snapshots of content. 
                        This is a list of all the functions available to you.
                        Note - git is not github. what is github? github stores git repository in the internet and that's basically all it does
                        So, as I was saying this is the list of functions
                    git help --all
usage: git [--version] [--help] [-C ] [-c name=value]
           [--exec-path[=]] [--html-path] [--man-path] [--info-path]
           [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
           [--git-dir=] [--work-tree=] [--namespace=]
            []
available git commands in '/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core'
  add                       clone                                                                                                                             submodule
  add--interactive                                    fetch                     log
  am                        commit
  annotate
  apply                                                                                                                                                       tag
                                                                                                                                    reset
  archive                                             format-patch
  bisect                                                                        merge
  bisect--helper                                                                                          pull                      revert
  blame                                               gc                                                  push                      rm
  branch
                                                      grep
                                                      gui--askpass                                        rebase
                            daemon                    help                                                reflog
                            diff                                                                          remote
  checkout
  cherry-pick                                         init                                                                          stash
                                                                                mv                                                  status
  clean                                               instaweb
git commands available from elsewhere on your $PATH
  loglive
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help ' or 'git help '
to read about a specific subcommand or concept.
                    
                        But you don't have to use every one of the functions available. I've only every had to use a handful.
 because Git was initially a toolkit for a VCS rather than a full user-friendly VCS, it has a bunch of verbs that do low-level work and were designed to be chained together UNIX style or called from scripts. These commands are generally referred to as “plumbing” commands, and the more user-friendly commands are called “porcelain” commands.
 https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain
                    
Subversion-Style Workflow Link
git allows you to use it the way you want. You can use it exactly like how you would svn.Integration Manager Workflow Link
git also allows you to pick and compile specific changes from anyone else that has made their repository publicDictator and Lieutenants Workflow Link
Workflow followed by Linux devs, where Linus has a repository on his local machine that no one else has access to.- Linus Torvalds likes to name projects after himself
The Parable by Tom Preston-Werner (Founder of GitHub) Link
This article goes through the steps one may attempt to create a version control system. In this hypothetical scenario one may start off by creating multiple folders as a backup. The final VCS that is arrived at is very similar to git. The author is the founder of GitHubgit blame README Link