Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git Rebase

Git Rebase

Git is the dominant tool for source code management. Misunderstanding and misusing Git can cost development teams time, energy, and money. Few better examples exist than Git's default merge workflow which creates repositories that are hard to read, debug, and maintain. In this talk, I'll show how to leverage the Rebase Workflow to produce quality code that's communicative and empowering to your team.

Brooke Kuhlmann

January 11, 2023
Tweet

More Decks by Brooke Kuhlmann

Other Decks in Programming

Transcript

  1. Git Rebase Presented by Brooke Kuhlmann

  2. Git Rebase Key Benefits https://www.alchemists.io/articles/git_commit_anatomy

  3. 📏 Linear 📖 Readable 🐞 Debuggable Git Rebase https://www.alchemists.io/articles/git_commit_anatomy

  4. A Brief Review

  5. A Brief Review

  6. Merge versus Rebase

  7. Merge versus Rebase

  8. Merge versus Rebase

  9. Merge versus Rebase

  10. Merge versus Rebase

  11. Merge versus Rebase

  12. Merge versus Rebase

  13. Merge "Join two or more development histories together." https://git-scm.com/docs/git-merge

  14. Merge "Join two or more development histories together." https://git-scm.com/docs/git-merge

  15. Merge "Join two or more development histories together." https://git-scm.com/docs/git-merge

  16. Merge Example (semi-linear)

  17. Merge Example (semi-linear)

  18. Merge Example (non-linear)

  19. Merge Example (non-linear)

  20. None
  21. None
  22. 🚫

  23. Git Log - Quick Tip

  24. Git Log - Quick Tip 💡

  25. git log --graph --pretty=format:"%C(yellow)%h%C(reset) %C(green)%cr.%C(reset)" Git Log (graph) https://www.alchemists.io/projects/dotfiles

  26. git log --graph --pretty=format:"%C(yellow)%h%C(reset) %C(green)%cr.%C(reset)" Git Log (graph) ⭐ https://www.alchemists.io/projects/dotfiles

  27. git log --graph --pretty=format:"%C(yellow)%h%C(reset) %C(green)%cr.%C(reset)" Git Log (graph) %C(yellow) Yellow

    https://www.alchemists.io/projects/dotfiles
  28. git log --graph --pretty=format:"%C(yellow)%h%C(reset) %C(green)%cr.%C(reset)" Git Log (graph) %h SHA

    https://www.alchemists.io/projects/dotfiles
  29. git log --graph --pretty=format:"%C(yellow)%h%C(reset) %C(green)%cr.%C(reset)" Git Log (graph) %C(reset) Color

    Reset https://www.alchemists.io/projects/dotfiles
  30. git log --graph --pretty=format:"%C(yellow)%h%C(reset) %C(green)%cr.%C(reset)" Git Log (graph) %C(green) Green

    https://www.alchemists.io/projects/dotfiles
  31. git log --graph --pretty=format:"%C(yellow)%h%C(reset) %C(green)%cr.%C(reset)" Git Log (graph) %cr Committer

    Date https://www.alchemists.io/projects/dotfiles
  32. git log --graph --pretty=format:"%C(yellow)%h%C(reset) %C(green)%cr.%C(reset)" Git Log (graph) %C(reset) Color

    Reset https://www.alchemists.io/projects/dotfiles
  33. Rebase "Reapply commits on top of another base tip." https://git-scm.com/docs/git-rebase

  34. Rebase "Reapply commits on top of another base tip." https://git-scm.com/docs/git-rebase

  35. Rebase Onto master Branch https://www.atlassian.com/blog/git/simple-git-workflow-is-simple

  36. Rebase Onto master Branch https://www.atlassian.com/blog/git/simple-git-workflow-is-simple

  37. Rebase Onto feature Branch https://www.atlassian.com/blog/git/simple-git-workflow-is-simple

  38. Rebase Onto feature Branch https://www.atlassian.com/blog/git/simple-git-workflow-is-simple

  39. Rebase Example

  40. Rebase Example

  41. git pull Merge Workflow Synchronize: 1⃣

  42. git pull Merge Workflow Synchronize: 1⃣ git fetch && git

    merge 💡
  43. git pull Merge Workflow git switch --create example Synchronize: 1⃣

    2⃣ Work:
  44. git pull Merge Workflow git switch --create example Synchronize: 1⃣

    2⃣ Work: --create branch
  45. git pull Merge Workflow git switch --create example git commit

    Synchronize: 1⃣ 2⃣ Work:
  46. git pull Merge Workflow git switch --create example git commit

    ... Synchronize: 1⃣ 2⃣ Work:
  47. git pull Merge Workflow git switch --create example git commit

    ... git pull origin main Synchronize: 1⃣ 2⃣ 3⃣ Push: Work:
  48. git pull Merge Workflow git switch --create example git commit

    ... git pull origin main git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work:
  49. git pull Merge Workflow git switch --create example git commit

    ... git pull origin main git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work:
  50. git pull Rebase Workflow git switch --create example git commit

    ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main
  51. git pull Rebase Workflow git switch --create example git commit

    ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main
  52. git pull Rebase Workflow git switch --create example git commit

    ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main
  53. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main
  54. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: 💡 origin main
  55. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: 🎉 origin main
  56. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main
  57. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main
  58. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main
  59. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main
  60. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: --rebase origin main
  61. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: --force-with-lease --force-if-includes --rebase origin main
  62. git fetch --prune git pull --rebase Rebase Workflow git switch

    --create example git commit ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: --force-with-lease --force-if-includes 💡 --rebase origin main
  63. Git Configuration - Quick Tips https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt

  64. Git Configuration - Quick Tips 💡 https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt

  65. [pull] rebase = true Git Configuration (Pull) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt

  66. [pull] rebase = true Git Configuration (Pull) 🚫 git pull

    --rebase ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  67. [pull] rebase = true Git Configuration (Pull) 🚫 git pull

    --rebase ✅ git pull ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  68. [pull] rebase = true Git Configuration (Pull) git config --global

    pull.rebase true ~/.gitconfig: Command Line Interface (CLI): https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  69. [pull] rebase = merges Git Configuration (Pull) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt

  70. [pull] rebase = merges Git Configuration (Pull) ~/.gitconfig: 💡 Git

    2.22.0 (or higher) https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  71. [fetch] prune = true Git Configuration (Fetch) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt

  72. [fetch] prune = true Git Configuration (Fetch) 🚫 git fetch

    --prune ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  73. [fetch] prune = true Git Configuration (Fetch) 🚫 git fetch

    --prune ✅ git fetch ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  74. [fetch] prune = true Git Configuration (Fetch) git config --global

    fetch.prune true ~/.gitconfig: Command Line Interface (CLI): https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  75. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  76. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt 💡 git push --set-upstream origin <branch>
  77. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  78. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt 💡 git switch --create <branch> --track
  79. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt 💡 git switch --create <branch> --track 🚫
  80. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt 💡
  81. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt 💡
  82. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: 💡 Git 2.30.0 (or higher) https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  83. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ✅ git push --force-with-lease --force-if-includes ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  84. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ✅ git push --force-with-lease --force-if-includes ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt 🚫
  85. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) git config --global push.autoSetupRemote true git config --global push.default simple git config --global push.followTags simple git config --global push.useForceIfIncludes true ~/.gitconfig: Command Line Interface (CLI): https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  86. Git Interactive Rebase

  87. Git Interactive Rebase 🎉

  88. Git Rebase CLI git rebase --interactive main (standard)

  89. Git Rebase CLI git rebase --interactive main (standard) 💡 -i

  90. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema # Rebase 317ef2c2c735 onto f0c2847c9444 (2 commands) # # Commands: # p, pick <commit> = use commit # r, reword <commit> = use commit, but edit the commit message # e, edit <commit> = use commit, but stop for amending # s, squash <commit> = use commit, but meld into previous commit # f, fixup <commit> = like "squash", but discard this commit's log message # x, exec <command> = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop <commit> = remove commit # l, label <label> = label current HEAD with a name # t, reset <label> = reset HEAD to a label # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
  91. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema # Rebase 317ef2c2c735 onto f0c2847c9444 (2 commands) # # Commands: # p, pick <commit> = use commit # r, reword <commit> = use commit, but edit the commit message # e, edit <commit> = use commit, but stop for amending # s, squash <commit> = use commit, but meld into previous commit # f, fixup <commit> = like "squash", but discard this commit's log message # x, exec <command> = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop <commit> = remove commit # l, label <label> = label current HEAD with a name # t, reset <label> = reset HEAD to a label # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
  92. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema # Rebase 317ef2c2c735 onto f0c2847c9444 (2 commands) # # Commands: # p, pick <commit> = use commit # r, reword <commit> = use commit, but edit the commit message # e, edit <commit> = use commit, but stop for amending # s, squash <commit> = use commit, but meld into previous commit # f, fixup <commit> = like "squash", but discard this commit's log message # x, exec <command> = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop <commit> = remove commit # l, label <label> = label current HEAD with a name # t, reset <label> = reset HEAD to a label # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
  93. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema # Rebase 317ef2c2c735 onto f0c2847c9444 (2 commands) # # Commands: # p, pick <commit> = use commit # r, reword <commit> = use commit, but edit the commit message # e, edit <commit> = use commit, but stop for amending # s, squash <commit> = use commit, but meld into previous commit # f, fixup <commit> = like "squash", but discard this commit's log message # x, exec <command> = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop <commit> = remove commit # l, label <label> = label current HEAD with a name # t, reset <label> = reset HEAD to a label # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
  94. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema # Rebase 317ef2c2c735 onto f0c2847c9444 (2 commands) # # Commands: # p, pick <commit> = use commit # r, reword <commit> = use commit, but edit the commit message # e, edit <commit> = use commit, but stop for amending # s, squash <commit> = use commit, but meld into previous commit # f, fixup <commit> = like "squash", but discard this commit's log message # x, exec <command> = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop <commit> = remove commit # l, label <label> = label current HEAD with a name # t, reset <label> = reset HEAD to a label # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>] 🚫 🚫 🚫
  95. git rebase --interactive @~<number> (number) Git Rebase CLI

  96. git rebase --interactive @~<number> (number) HEAD Git Rebase CLI

  97. (branch) git rebase --interactive <branch> Git Rebase CLI

  98. (tag) git rebase --interactive <tag> Git Rebase CLI

  99. (SHA) git rebase --interactive <SHA> Git Rebase CLI

  100. (upstream) git rebase --interactive @{upstream} Git Rebase CLI

  101. (root) git rebase --interactive --root Git Rebase CLI

  102. (root) git rebase --interactive --root ⚠ Git Rebase CLI

  103. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema # Rebase 317ef2c2c735 onto f0c2847c9444 (2 commands) # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's message # x, exec = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop = remove commit
  104. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema # Rebase 317ef2c2c735 onto f0c2847c9444 (2 commands) # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's message # x, exec = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop = remove commit
  105. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema # Rebase 317ef2c2c735 onto f0c2847c9444 (2 commands) # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's message # x, exec = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop = remove commit
  106. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema # Rebase 317ef2c2c735 onto f0c2847c9444 (2 commands) # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's message # x, exec = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop = remove commit
  107. Git Rebase https://www.alchemists.io/screencasts/git_rebase_pick

  108. Git Rebase Pick https://www.alchemists.io/screencasts/git_rebase_pick

  109. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick f7a6ea7f46b8

    Added documentation. pick 317ef2c2c735 Fixed JSON schema. https://www.alchemists.io/screencasts/git_rebase_pick
  110. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick f7a6ea7f46b8

    Added documentation. pick 317ef2c2c735 Fixed JSON schema. 🔄 https://www.alchemists.io/screencasts/git_rebase_pick
  111. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick f7a6ea7f46b8

    Added documentation. pick 317ef2c2c735 Fixed JSON schema. 🔄 📖 https://www.alchemists.io/screencasts/git_rebase_pick
  112. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick f7a6ea7f46b8

    Added documentation. pick 317ef2c2c735 Fixed JSON schema. https://www.alchemists.io/screencasts/git_rebase_pick
  113. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick f7a6ea7f46b8

    Added documentation. pick 317ef2c2c735 Fixed JSON schema. https://www.alchemists.io/screencasts/git_rebase_pick
  114. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick f7a6ea7f46b8

    Added documentation. pick 317ef2c2c735 Fixed JSON schema. pick 317ef2c2c735 Fixed JSON schema pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8 Added documentation https://www.alchemists.io/screencasts/git_rebase_pick
  115. Git Rebase https://www.alchemists.io/screencasts/git_rebase_reword

  116. Git Rebase Reword https://www.alchemists.io/screencasts/git_rebase_reword

  117. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_reword
  118. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

    Added documentation pick 317ef2c2c735 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_reword
  119. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation f7a6ea7f46b8 Added

    documentation pick 317ef2c2c735 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_reword
  120. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation f7a6ea7f46b8 Added

    documentation pick 317ef2c2c735 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_reword reword
  121. Git Rebase Editor Added documentation Provides improved navigation within the

    README. This was autogenerated using `tocer --generate`. https://www.alchemists.io/screencasts/git_rebase_reword
  122. Git Rebase Editor Added documentation Provides improved navigation within the

    README. This was autogenerated using `tocer --generate`. https://www.alchemists.io/screencasts/git_rebase_reword
  123. Git Rebase Editor Provides improved navigation within the README. This

    was autogenerated using `tocer --generate`. https://www.alchemists.io/screencasts/git_rebase_reword
  124. Git Rebase Editor Provides improved navigation within the README. This

    was autogenerated using `tocer --generate`. Added table of contents to the README https://www.alchemists.io/screencasts/git_rebase_reword
  125. Git Rebase Editor Provides improved navigation within the README. This

    was autogenerated using `tocer --generate`. Added table of contents to the README https://www.alchemists.io/screencasts/git_rebase_reword
  126. Git Rebase Editor Provides improved navigation within the README. This

    was autogenerated using `tocer --generate`. What Added table of contents to the README https://www.alchemists.io/screencasts/git_rebase_reword
  127. Git Rebase Editor Provides improved navigation within the README. This

    was autogenerated using `tocer --generate`. What Why Added table of contents to the README https://www.alchemists.io/screencasts/git_rebase_reword
  128. Git Rebase CLI https://www.alchemists.io/screencasts/git_rebase_reword

  129. Git Rebase CLI 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added table

    of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_rebase_reword
  130. Git Rebase CLI 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added table

    of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_rebase_reword
  131. Git Rebase https://www.alchemists.io/screencasts/git_rebase_edit

  132. Git Rebase Edit https://www.alchemists.io/screencasts/git_rebase_edit

  133. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_edit
  134. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_edit
  135. Git Rebase Editor 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0 Added

    table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_edit
  136. Git Rebase Editor 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0 Added

    table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_edit edit
  137. Git Rebase https://www.alchemists.io/screencasts/git_rebase_squash

  138. Git Rebase Squash https://www.alchemists.io/screencasts/git_rebase_squash

  139. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_squash
  140. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_squash
  141. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added

    table of contents to the README 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_squash
  142. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added

    table of contents to the README 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_squash squash squash
  143. Git Rebase Editor Added initial implementation First initial working implementation.

    Added table of contents to the README Provides improved navigation within the README. This was autogenerated using `tocer --generate`. Fixed JSON schema Corrects a typo in the original implementation which caused the builds to fail. https://www.alchemists.io/screencasts/git_rebase_squash
  144. Git Rebase Editor Added initial implementation First initial working implementation.

    Added table of contents to the README Provides improved navigation within the README. This was autogenerated using `tocer --generate`. Fixed JSON schema Corrects a typo in the original implementation which caused the builds to fail. https://www.alchemists.io/screencasts/git_rebase_squash 🤢
  145. Git Rebase Editor Added initial implementation First initial working implementation.

    Added table of contents to the README Provides improved navigation within the README. This was autogenerated using `tocer --generate`. Fixed JSON schema Corrects a typo in the original implementation which caused the builds to fail. https://www.alchemists.io/screencasts/git_rebase_squash
  146. Git Rebase Editor Added initial implementation First initial working implementation.

    Added table of contents to the README Provides improved navigation within the README. This was autogenerated using `tocer --generate`. Fixed JSON schema Corrects a typo in the original implementation which caused the builds to fail. https://www.alchemists.io/screencasts/git_rebase_squash Subject Subject Subject
  147. Git Rebase Editor Added initial implementation First initial working implementation.

    Added table of contents to the README Provides improved navigation within the README. This was autogenerated using `tocer --generate`. Fixed JSON schema Corrects a typo in the original implementation which caused the builds to fail. https://www.alchemists.io/screencasts/git_rebase_squash Body Body Body
  148. Git Rebase Editor Added initial implementation First initial working implementation.

    Added table of contents to the README Provides improved navigation within the README. This was autogenerated using `tocer --generate`. Fixed JSON schema Corrects a typo in the original implementation which caused the builds to fail. 🚫 https://www.alchemists.io/screencasts/git_rebase_squash
  149. Git Rebase Editor Added initial implementation First initial working implementation.

    Added table of contents to the README Provides improved navigation within the README. This was autogenerated using `tocer --generate`. https://www.alchemists.io/screencasts/git_rebase_squash
  150. Git Rebase Editor Added initial implementation First initial working implementation.

    Added table of contents to the README Provides improved navigation within the README. This was autogenerated using `tocer --generate`. 🚫 https://www.alchemists.io/screencasts/git_rebase_squash
  151. Git Rebase Editor Added initial implementation First initial working implementation.

    Added table of contents to the README Provides improved navigation within the README. This was autogenerated using `tocer --generate`. 🚫 https://www.alchemists.io/screencasts/git_rebase_squash
  152. Git Rebase Editor Added initial implementation. First initial working implementation.

    Provides improved navigation within the README. This was autogenerated using `tocer --generate`. https://www.alchemists.io/screencasts/git_rebase_squash
  153. Git Rebase Editor Added initial implementation. First initial working implementation.

    Provides improved navigation within the README. This was autogenerated using `tocer --generate`. ✅ https://www.alchemists.io/screencasts/git_rebase_squash
  154. Git Rebase Editor Added initial implementation. First initial working implementation.

    Provides improved navigation within the README. This was autogenerated using `tocer --generate`. ✅ https://www.alchemists.io/screencasts/git_rebase_squash
  155. Git Rebase Editor Added initial implementation. First initial working implementation.

    Provides improved navigation within the README. This was autogenerated using `tocer --generate`. ✅ https://www.alchemists.io/screencasts/git_rebase_squash
  156. Git Rebase Editor Added initial implementation https://www.alchemists.io/screencasts/git_rebase_squash

  157. Git Rebase Editor Added initial implementation First initial working implementation

    with README autogenerated with `tocer --generate`. https://www.alchemists.io/screencasts/git_rebase_squash
  158. Git Rebase Editor Added initial implementation First initial working implementation

    with README autogenerated with `tocer --generate`. ✅ https://www.alchemists.io/screencasts/git_rebase_squash
  159. Git Rebase https://www.alchemists.io/screencasts/git_rebase_fixup

  160. Git Rebase Fixup https://www.alchemists.io/screencasts/git_rebase_fixup

  161. Git Rebase Fixup ⭐ ⭐ ⭐ ⭐ https://www.alchemists.io/screencasts/git_rebase_fixup

  162. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_fixup
  163. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_fixup
  164. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_fixup
  165. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_fixup
  166. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_fixup fixup
  167. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation fixup 217c2803c799

    Fixed JSON schema pick 7eac5b44a5c0 Added table of contents to the README https://www.alchemists.io/screencasts/git_rebase_fixup
  168. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation fixup 217c2803c799

    Fixed JSON schema pick 7eac5b44a5c0 Added table of contents to the README ⬆ https://www.alchemists.io/screencasts/git_rebase_fixup
  169. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation fixup 217c2803c799

    Fixed JSON schema pick 7eac5b44a5c0 Added table of contents to the README ⬆ https://www.alchemists.io/screencasts/git_rebase_fixup
  170. Git Rebase CLI https://www.alchemists.io/screencasts/git_rebase_fixup

  171. Git Rebase CLI 657a933f46f5 Added initial implementation 4809b7a53f05 Added table

    of contents to the README git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_rebase_fixup
  172. Git Rebase https://www.alchemists.io/screencasts/git_rebase_exec

  173. Git Rebase Exec https://www.alchemists.io/screencasts/git_rebase_exec

  174. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_exec
  175. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_exec
  176. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_exec
  177. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_exec
  178. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_exec exec printf "%s\n" "This is an example script."
  179. Git Rebase CLI |> This is an example script. https://www.alchemists.io/screencasts/git_rebase_exec

  180. Git Rebase https://www.alchemists.io/screencasts/git_rebase_break

  181. Git Rebase Break https://www.alchemists.io/screencasts/git_rebase_break

  182. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_break
  183. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_break
  184. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_break
  185. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_break break
  186. Git Rebase https://www.alchemists.io/screencasts/git_rebase_drop

  187. Git Rebase Drop https://www.alchemists.io/screencasts/git_rebase_drop

  188. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_drop
  189. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_drop
  190. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added

    table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_drop
  191. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added

    table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_drop drop
  192. Git Rebase CLI https://www.alchemists.io/screencasts/git_rebase_drop

  193. Git Rebase CLI 2dc5e2e29e22 Added initial implementation d39847560845 Fixed JSON

    schema git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_rebase_drop
  194. Git Rebase Resolution 🛠

  195. Git Rebase Resolution git rebase --abort

  196. Git Rebase Resolution git rebase --abort git rebase --continue

  197. Git Rebase Resolution git rebase --abort git rebase --continue git

    rebase --skip
  198. Git Rebase Resolution git rebase --abort git rebase --continue git

    rebase --skip git rebase --show-current-patch
  199. Git Commit (fixup) git commit --fixup <sha> https://www.alchemists.io/screencasts/git_commit_fixup

  200. Git Commit (fixup) git commit --fixup <sha> ⭐ https://www.alchemists.io/screencasts/git_commit_fixup

  201. Git Commit (fixup) https://www.alchemists.io/screencasts/git_commit_fixup

  202. Git Commit (fixup) 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added table

    of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_commit_fixup
  203. Git Commit (fixup) git commit --fixup 2dc5e2e29e22 2dc5e2e29e22 Added initial

    implementation 7eac5b44a5c0 Added table of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_commit_fixup
  204. Git Commit (fixup) git commit --fixup 2dc5e2e29e22 2dc5e2e29e22 Added initial

    implementation 7eac5b44a5c0 Added table of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s" git commit --fixup 7eac5b44a5c0 https://www.alchemists.io/screencasts/git_commit_fixup
  205. Git Commit (fixup) git rebase --interactive main https://www.alchemists.io/screencasts/git_commit_fixup

  206. Git Commit (fixup) pick 2dc5e2e29e22 Added initial implementation fixup! Added

    initial implementation pick 7eac5b44a5c0 Added table of contents to the README fixup! Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_commit_fixup
  207. Git Commit (fixup) pick 2dc5e2e29e22 Added initial implementation fixup! Added

    initial implementation pick 7eac5b44a5c0 Added table of contents to the README fixup! Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_commit_fixup
  208. Git Commit (fixup) pick 2dc5e2e29e22 Added initial implementation fixup! Added

    initial implementation pick 7eac5b44a5c0 Added table of contents to the README fixup! Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_commit_fixup
  209. Git Commit (fixup) pick 2dc5e2e29e22 Added initial implementation fixup! Added

    initial implementation pick 7eac5b44a5c0 Added table of contents to the README fixup! Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_commit_fixup
  210. Git Commit (fixup) https://www.alchemists.io/screencasts/git_commit_fixup

  211. Git Commit (fixup) ca5a69955876 Added initial implementation 3226a5547e49 Added table

    of contents to the README 8450b65fc5ec Fixed JSON schema git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_commit_fixup
  212. Git Commit (fixup)

  213. Git Commit (fixup) 💡Git 2.32.0 (or higher)

  214. Git Commit (fixup) git commit --fixup=amend:<sha> 💡Git 2.32.0 (or higher)

  215. Git Commit (fixup) git commit --fixup=amend:<sha> 💡Git 2.32.0 (or higher)

    git commit --fixup=reword:<sha>
  216. Git Commit (fixup)

  217. Git Commit (fixup) 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added table

    of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s"
  218. Git Commit (fixup) git commit --fixup=amend:2dc5e2e29e22 2dc5e2e29e22 Added initial implementation

    7eac5b44a5c0 Added table of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s"
  219. Git Commit (fixup) git commit --fixup=amend:2dc5e2e29e22 2dc5e2e29e22 Added initial implementation

    7eac5b44a5c0 Added table of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s" git commit --fixup=reword:7eac5b44a5c0
  220. Git Commit (fixup)

  221. Git Commit (fixup) 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added table

    of contents to the README 217c2803c799 Fixed JSON schema 1e920026b099 amend! Added initial implementation 8239288c5aaf amend! Added table of contents to the README git log --pretty=format:"%h %s"
  222. Git Commit (fixup) 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added table

    of contents to the README 217c2803c799 Fixed JSON schema 1e920026b099 amend! Added initial implementation 8239288c5aaf amend! Added table of contents to the README git log --pretty=format:"%h %s"
  223. Git Commit (fixup) pick 2dc5e2e29e22 Added initial implementation fixup -C

    Added initial implementation pick 7eac5b44a5c0 Added table of contents to the README fixup -C Added table of contents to the README pick 217c2803c799 Fixed JSON schema
  224. Git Commit (fixup) pick 2dc5e2e29e22 Added initial implementation fixup -C

    Added initial implementation pick 7eac5b44a5c0 Added table of contents to the README fixup -C Added table of contents to the README pick 217c2803c799 Fixed JSON schema
  225. Git Commit (fixup) pick 2dc5e2e29e22 Added initial implementation fixup -C

    Added initial implementation pick 7eac5b44a5c0 Added table of contents to the README fixup -C Added table of contents to the README pick 217c2803c799 Fixed JSON schema
  226. Git Commit (fixup) pick 2dc5e2e29e22 Added initial implementation fixup -C

    Added initial implementation pick 7eac5b44a5c0 Added table of contents to the README fixup -C Added table of contents to the README pick 217c2803c799 Fixed JSON schema
  227. Git Commit (fixup)

  228. Git Commit (fixup) ca5a69955876 Added initial implementation 3226a5547e49 Added table

    of contents 8450b65fc5ec Fixed JSON schema git log --pretty=format:"%h %s"
  229. Git Commit (squash) git commit --squash <sha> https://www.alchemists.io/screencasts/git_commit_squash

  230. Git Commit (squash) https://www.alchemists.io/screencasts/git_commit_squash

  231. Git Commit (squash) 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added table

    of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_commit_squash
  232. Git Commit (squash) 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added table

    of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s" git commit --squash 7eac5b44a5c0 https://www.alchemists.io/screencasts/git_commit_squash
  233. Git Commit (squash) 2dc5e2e29e22 Added initial implementation 7eac5b44a5c0 Added table

    of contents to the README 217c2803c799 Fixed JSON schema git log --pretty=format:"%h %s" git commit --squash 7eac5b44a5c0 https://www.alchemists.io/screencasts/git_commit_squash
  234. Git Commit (squash) pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README squash! Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_commit_squash
  235. Git Commit (squash) pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README squash! Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_commit_squash
  236. Git Commit (squash) pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

    Added table of contents to the README squash! Added table of contents to the README pick 217c2803c799 Fixed JSON schema https://www.alchemists.io/screencasts/git_commit_squash
  237. Git Commit (amend) git commit --amend https://www.alchemists.io/screencasts/git_commit_amend

  238. Git Commit (amend) git commit --amend --no-edit 💡 https://www.alchemists.io/screencasts/git_commit_amend

  239. Git Commit (amend) git commit --amend --no-edit --all 💡 https://www.alchemists.io/screencasts/git_commit_amend

  240. Git CLI - Advanced

  241. Git CLI - Advanced ⚡

  242. (⚡ fast rebase ⚡) GIT_EDITOR=true git rebase --interactive main Git

    Rebase CLI https://www.alchemists.io/projects/dotfiles
  243. (⚡ fast rebase ⚡) GIT_EDITOR=true git rebase --interactive main 💡

    Git Rebase CLI https://www.alchemists.io/projects/dotfiles
  244. Git Configuration - Rebase Tips https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt

  245. Git Configuration - Rebase Tips 💡 https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt

  246. [rebase] abbreviateCommands = true autoSquash = true autoStash = true

    Git Configuration (Rebase) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  247. [rebase] abbreviateCommands = true autoSquash = true autoStash = true

    Git Configuration (Rebase) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  248. [rebase] abbreviateCommands = true autoSquash = true autoStash = true

    Git Configuration (Rebase) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  249. [rebase] abbreviateCommands = true autoSquash = true autoStash = true

    Git Configuration (Rebase) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  250. [rebase] abbreviateCommands = true autoSquash = true autoStash = true

    Git Configuration (Rebase) git config --global rebase.abbreviateCommands true git config --global rebase.autoSquash true git config --global rebase.autoStash true ~/.gitconfig: Command Line Interface (CLI): https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  251. [rerere] enabled = true autoUpdate = true Git Configuration (Rerere)

    ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  252. [rerere] enabled = true autoUpdate = true Git Configuration (Rerere)

    ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  253. [rerere] enabled = true autoUpdate = true Git Configuration (Rerere)

    ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  254. [rerere] enabled = true autoUpdate = true Git Configuration (Rerere)

    git config --global rerere.enabled true git config --global rerere.autoUpdate true ~/.gitconfig: Command Line Interface (CLI): https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  255. Next Steps

  256. Next Steps

  257. Articles https://www.alchemists.io/articles

  258. Articles https://www.alchemists.io/articles

  259. Screencasts https://www.alchemists.io/screencasts

  260. Screencasts https://www.alchemists.io/screencasts

  261. Tools https://www.alchemists.io/projects

  262. Tools Dotfiles (https://www.alchemists.io/projects/dotfiles) https://www.alchemists.io/projects

  263. Tools Dotfiles (https://www.alchemists.io/projects/dotfiles) Git Lint (https://www.alchemists.io/projects/git-lint) https://www.alchemists.io/projects

  264. Tools Dotfiles (https://www.alchemists.io/projects/dotfiles) Git Lint (https://www.alchemists.io/projects/git-lint) Milestoner (https://www.alchemists.io/projects/milestoner) https://www.alchemists.io/projects

  265. Tools Dotfiles (https://www.alchemists.io/projects/dotfiles) Git Lint (https://www.alchemists.io/projects/git-lint) Milestoner (https://www.alchemists.io/projects/milestoner) Rubysmith (https://www.alchemists.io/projects/rubysmith)

    https://www.alchemists.io/projects
  266. Tools Dotfiles (https://www.alchemists.io/projects/dotfiles) Git Lint (https://www.alchemists.io/projects/git-lint) Milestoner (https://www.alchemists.io/projects/milestoner) Rubysmith (https://www.alchemists.io/projects/rubysmith)

    Gemsmith (https://www.alchemists.io/projects/gemsmith) https://www.alchemists.io/projects
  267. Thanks 🙇 https://www.alchemists.io