1. Git Introduction

    Mike Ward

    MikeWard.tel

  2. My Comments

  3. What Is Source Control Management?

    save snapshots of your project

  4. Why Version Control?

    duh!
  5. Why VCS?

  6. You don't need to be an expert!

  7. VCS Types

  8. Centralized Systems

  9. Distributed Systems

  10. Delta based storage

  11. Delta based storage

  12. Delta based storage

  13. Delta based storage

  14. Delta based storage

  15. DAG based storage

  16. DAG based storage

  17. DAG based storage

  18. DAG based storage

  19. DAG based storage

  20. DAG based storage

  21. Directed Acyclic Graph storage

  22. Directed Acyclic Graph storage

  23. Directed Acyclic Graph storage

  24. Directed Acyclic Graph storage

  25. Concept: Three Buckets

  26. Git Started

    Git Started

  27. Git Started: Installation

  28. Git Setup

    git config --global user.name "mike ward"

    git config --global user.email "mike@mikeward.net"

    cat ~/.gitconfig

  29. Basic Commands

  30. Git Started: git init

    git init - creates a new repository

  31. .git directory

    cat ~/.gitconfig

  32. Git Started: git status

  33. Git Started: git add

  34. Git Started: add interactive

  35. Git Started: commit

  36. Git Started: commit

  37. Git Started: commit (options)

  38. Git Commands: git branch & git checkout

    demo - basic commands

  39. Git Commands: git branch & git checkout

    git branches

  40. Git Commands: git branch

  41. Git Commands: git branch

  42. Git Commands: HEAD

  43. Git Commands: git checkout

  44. Git Commands: git checkout

  45. Git Commands: git checkout

  46. Git Commands: git checkout

    git checkout -b dev

    git branch dev && git checkout dev

  47. Git Commands: git merge & git rebase

    merging and rebasing

  48. Git Commands: git merge

  49. Git Commands: git merge

  50. Git Commands: git merge

  51. Git Commands: git rebase

  52. Git Commands: git rebase

  53. Git Commands: git rebase

  54. Git Commands: git rebase vs git merge

  55. Git Commands: git rebase -i

  56. Git Commands: git rebase -i

  57. Git Commands: git rebase -i

  58. Git Commands: git rebase -i

  59. Git Commands: git rebase -i

  60. Git Commands: git rebase -i

  61. Git Commands: git rebase -i

  62. Git Tips: working on branches

  63. Git Commands: git tag

  64. Git Commands: git remote

    git remote

  65. Git Commands: git remote

    git remote add #{nickname} #{url}


  66. Git Commands: git remote

    git remote add #{nickname} #{url}


  67. Git Commands: git remote

    git remote add #{nickname} #{url}


  68. Git Commands: git remote

    git remote


  69. Git Commands: git remote

    git remote -v


  70. Git Commands: git remote

    git remote show #{nickname}


  71. Git Commands: git remote

    git remote rename #{from} #{to}



    git remote rm #{remote-name}


  72. Git Commands: git remote

    things to do with remotes

  73. Git Started: git clone

  74. git clone revisited

  75. Git Commands: git push

    git push

  76. Git Commands: git push

    git push #{destination} #{branch}


  77. Git Commands: git push

    git push #{destination} #{branch}


  78. Git Commands: git push

    git push #{destination} #{branch}


  79. Git Commands: git log

    git log

  80. Git Commands: git log

    git log -3

  81. Git Commands: git log

    git log -3

  82. Git Commands: git log

    git log -3

  83. Git Commands: git log

    git log -3

  84. Git Commands: git log

    git log -3

  85. Git Commands: git log

    git log -3

  86. Git Commands: git log

    git log -p

  87. Git Commands: git log

    git log --since=yesterday

  88. Git Commands: git log

    git log --pretty=oneline

  89. Git Commands: git log

    git log --oneline --graph --decorate --all

  90. Git Commands: git log

    git log --oneline --graph --decorate --all

  91. Git Basics: .gitignore

  92. Git Commands: git fetch

  93. Git Commands: git pull

    git pull = git fetch + git merge

  94. Git Commands: git stash

  95. Git Commands: git ls-files

  96. .git directory

    cat ~/.gitconfig

  97. git hooks

  98. git local hooks

  99. git remote hooks

  100. .git directory

  101. Git internals: objects

  102. Git internals: objects

  103. Git internals: objects

  104. Git internals: objects

  105. Git internals: objects

  106. Git internals: objects

  107. Git internals: objects

  108. Git internals: objects

  109. Git internals: objects

  110. Git Commands: git show

    used to show objects (blobs, trees, tags and commits)

  111. Git Commands: undoing changes

    I screwed up a file


    git checkout -- filename

  112. Git Commands: undoing changes

    I screwed up many files


    git checkout -f branchname

  113. Git Commands: undoing changes

    I screwed up the whole branch


    git branch -d branchname

  114. Git Commands: undoing changes

    revert the last commit


    git revert HEAD

  115. Git Commands: git gc

  116. Git Commands: git diff

  117. Git Tips: git add -i

  118. Git Tips: git add -p

  119. Git Utilities

    git utilities

  120. Git Utilities

    git-svn

  121. gitk

  122. git instaweb

    git instaweb --httpd=#{server_name}
  123. git instaweb

  124. Git Tips: git GUIs

  125. Collaboration in Git

  126. Collaboration in Git

  127. Collaboration in Git

  128. Collaboration in Git

  129. Collaboration in Git

  130. Collaboration in Git

  131. Collaboration in Git

  132. Collaboration in Git

  133. Git Tips: protocols

  134. Git Commands Revisited

    local commands branch/merge remote commands
    git init
    git add
    git status
    git commit
    git log
    git branch
    git diff
    git tag
    git show
    git branch
    git merge
    git checkout
    git rebase
    git stash
    git remote
    git clone
    git fetch
    git pull
    git push
  135. deploying with git

  136. deploying with git

  137. deploying with git

  138. deploying with git

  139. deploying with git

  140. deploying with git

  141. hosted repos for Git

  142. resources

  143. The End

    Thanks!