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.

E0e036f89c14b3e59640318eedf9670b?s=128

Brooke Kuhlmann

April 11, 2021
Tweet

Transcript

  1. Git Rebase Presented by Brooke Kuhlmann

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

  3. 📏 Linear Git Rebase https://www.alchemists.io/articles/git_commit_anatomy

  4. 📏 Linear 📖 Readable Git Rebase https://www.alchemists.io/articles/git_commit_anatomy

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

  6. A Brief Review

  7. A Brief Review

  8. Merge versus Rebase

  9. Merge versus Rebase

  10. Merge versus Rebase

  11. Merge versus Rebase

  12. Merge versus Rebase

  13. Merge versus Rebase

  14. Merge versus Rebase

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

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

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

  18. Merge Example (semi-linear)

  19. Merge Example (semi-linear)

  20. Merge Example (non-linear)

  21. Merge Example (non-linear)

  22. None
  23. None
  24. 🚫

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

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

  27. git log --graph --pretty=format:"%C(yellow)%h%C(reset) %C(green)%cr.%C(reset)" Git Log %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 %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 %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 %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 %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 %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 Synchronize: 1⃣

    2⃣ Work: --track 💡
  46. git pull Merge Workflow git switch --create example git commit

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    --rebase ✅ git pull ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  72. [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
  73. [pull] rebase = merges Git Configuration (Pull) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt

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

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

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

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

    --prune ✅ git fetch ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  78. [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
  79. [push] useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt

  80. [push] useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: 💡 Git

    2.30.0 (or higher) https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  81. [push] 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
  82. [push] useForceIfIncludes = true Git Configuration (Push) 🚫 git push

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

    push.useForceIfIncludes true ~/.gitconfig: Command Line Interface (CLI): https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  84. Git Interactive Rebase

  85. Git Interactive Rebase 🎉

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

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

  88. 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>]
  89. 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>]
  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 --interactive @~<number> (by number) Git Rebase CLI

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

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

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

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

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

  99. (by root) git rebase --interactive --root Git Rebase CLI

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

  101. (advanced) GIT_EDITOR=true git rebase --interactive main Git Rebase CLI https://www.alchemists.io/projects/dotfiles

  102. (advanced) GIT_EDITOR=true git rebase --interactive main 💡 Git Rebase CLI

    https://www.alchemists.io/projects/dotfiles
  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. reword f7a6ea7f46b8

    Added documentation. pick 317ef2c2c735 Fixed JSON schema. https://www.alchemists.io/screencasts/git_rebase_reword
  120. 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
  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 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`. Added table of contents to the README. 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`. What 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 Why Added table of contents to the README. https://www.alchemists.io/screencasts/git_rebase_reword
  127. Git Rebase CLI git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_rebase_reword

  128. 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
  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 https://www.alchemists.io/screencasts/git_rebase_edit

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

  132. 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
  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 edit 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 https://www.alchemists.io/screencasts/git_rebase_squash

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

  137. 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
  138. 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
  139. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. squash 7eac5b44a5c0

    Added table of contents to the README. squash 217c2803c799 Fixed JSON schema. https://www.alchemists.io/screencasts/git_rebase_squash
  140. 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
  141. 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
  142. 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
  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`. 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`. 🚫 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`. 🚫 https://www.alchemists.io/screencasts/git_rebase_squash
  147. 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
  148. 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
  149. 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
  150. 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
  151. Git Rebase Editor Added initial implementation. https://www.alchemists.io/screencasts/git_rebase_squash

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

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

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

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

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

  157. 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
  158. 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
  159. 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
  160. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick 7eac5b44a5c0

    Added table of contents to the README. fixup 217c2803c799 Fixed JSON schema. https://www.alchemists.io/screencasts/git_rebase_fixup
  161. 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
  162. Git Rebase CLI git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_rebase_fixup

  163. 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
  164. Git Rebase https://www.alchemists.io/screencasts/git_rebase_exec

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

  166. 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
  167. 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
  168. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick 7eac5b44a5c0

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

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

  171. 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
  172. 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
  173. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick 7eac5b44a5c0

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

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

  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_drop
  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_drop
  178. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. drop 7eac5b44a5c0

    Added table of contents to the README. pick 217c2803c799 Fixed JSON schema. https://www.alchemists.io/screencasts/git_rebase_drop
  179. Git Rebase CLI git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_rebase_drop

  180. 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
  181. Git Rebase Resolution 🛠

  182. Git Rebase Resolution git rebase --abort

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

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

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

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

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

  188. Git Commit (fixup) git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_commit_fixup

  189. 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
  190. 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
  191. 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
  192. Git Commit (fixup) git rebase --interactive main https://www.alchemists.io/screencasts/git_commit_fixup

  193. 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
  194. 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
  195. 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
  196. 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
  197. Git Commit (fixup) git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_commit_fixup

  198. 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
  199. Git Commit (squash) git commit --squash <sha> https://www.alchemists.io/screencasts/git_commit_squash

  200. Git Commit (squash) git log --pretty=format:"%h %s" https://www.alchemists.io/screencasts/git_commit_squash

  201. 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
  202. 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
  203. 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
  204. 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
  205. 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
  206. 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
  207. Git Commit (amend) git commit --amend https://www.alchemists.io/screencasts/git_commit_amend

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

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

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

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

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

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

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

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

    Git Configuration (Rebase) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  216. [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
  217. [rerere] enabled = true autoUpdate = true Git Configuration (Rerere)

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

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

    ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  220. [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
  221. [rerere] enabled = true autoUpdate = true Git Configuration (Rerere)

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

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

    ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  224. [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
  225. Next Steps

  226. Next Steps

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

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

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

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

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

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

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

  234. 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

  235. 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
  236. 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
  237. Thanks 🙇 https://www.alchemists.io