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

April 18, 2024
Tweet

More Decks by Brooke Kuhlmann

Other Decks in Programming

Transcript

  1. git pull Merge Workflow git switch --create example git commit

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

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

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

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

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

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

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

    ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main alchemists.io
  9. 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 alchemists.io
  10. 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 alchemists.io
  11. 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 alchemists.io
  12. 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 alchemists.io
  13. 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 alchemists.io
  14. 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 alchemists.io
  15. 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 alchemists.io
  16. 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 alchemists.io
  17. 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 alchemists.io
  18. 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 alchemists.io
  19. [pull] rebase = true Git Configuration (Pull) 🚫 git pull

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

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

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

    2.22.0 (or higher) github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt alchemists.io
  23. [fetch] prune = true Git Configuration (Fetch) 🚫 git fetch

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

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

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

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

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

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

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

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

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

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

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

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

    useForceIfIncludes = true Git Configuration (Push) ✅ git push --force-with-lease --force-if-includes ~/.gitconfig: github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt 🚫 alchemists.io
  36. [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): github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt alchemists.io
  37. 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>] alchemists.io
  38. 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>] alchemists.io
  39. 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>] alchemists.io
  40. 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>] alchemists.io
  41. 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>] 🚫 🚫 🚫 alchemists.io
  42. 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 alchemists.io
  43. 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 alchemists.io
  44. 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 alchemists.io
  45. 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 alchemists.io
  46. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation. pick f7a6ea7f46b8

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

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

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

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

    Added documentation. pick 317ef2c2c735 Fixed JSON schema. alchemists.io/screencasts/git_rebase_pick alchemists.io
  51. 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 alchemists.io/screencasts/git_rebase_pick alchemists.io
  52. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick f7a6ea7f46b8

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

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

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

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

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

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

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

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

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

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

    was autogenerated using `tocer --generate`. What Why Added table of contents to the README alchemists.io/screencasts/git_rebase_reword alchemists.io
  63. 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" alchemists.io/screencasts/git_rebase_reword alchemists.io
  64. 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" alchemists.io/screencasts/git_rebase_reword alchemists.io
  65. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

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

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

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

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

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

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

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

    table of contents to the README 217c2803c799 Fixed JSON schema alchemists.io/screencasts/git_rebase_squash squash squash alchemists.io
  73. 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. alchemists.io/screencasts/git_rebase_squash alchemists.io
  74. 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. alchemists.io/screencasts/git_rebase_squash 🤢 alchemists.io
  75. 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. alchemists.io/screencasts/git_rebase_squash alchemists.io
  76. 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. alchemists.io/screencasts/git_rebase_squash Subject Subject Subject alchemists.io
  77. 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. alchemists.io/screencasts/git_rebase_squash Body Body Body alchemists.io
  78. 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. 🚫 alchemists.io/screencasts/git_rebase_squash alchemists.io
  79. 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`. alchemists.io/screencasts/git_rebase_squash alchemists.io
  80. 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`. 🚫 alchemists.io/screencasts/git_rebase_squash alchemists.io
  81. 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`. 🚫 alchemists.io/screencasts/git_rebase_squash alchemists.io
  82. Git Rebase Editor Added initial implementation. First initial working implementation.

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

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

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

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

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

    with README autogenerated with `tocer --generate`. ✅ alchemists.io/screencasts/git_rebase_squash alchemists.io
  88. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

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

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

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

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

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

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

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

    Fixed JSON schema pick 7eac5b44a5c0 Added table of contents to the README ⬆ alchemists.io/screencasts/git_rebase_fixup alchemists.io
  96. Git Rebase CLI 657a933f46f5 Added initial implementation 4809b7a53f05 Added table

    of contents to the README git log --pretty=format:"%h %s" alchemists.io/screencasts/git_rebase_fixup alchemists.io
  97. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

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

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

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

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

    Added table of contents to the README pick 217c2803c799 Fixed JSON schema alchemists.io/screencasts/git_rebase_exec exec printf "%s\n" "This is an example script." alchemists.io
  102. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation pick 7eac5b44a5c0

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

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

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

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

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

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

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

    table of contents to the README pick 217c2803c799 Fixed JSON schema alchemists.io/screencasts/git_rebase_drop drop alchemists.io
  110. Git Rebase CLI 2dc5e2e29e22 Added initial implementation d39847560845 Fixed JSON

    schema git log --pretty=format:"%h %s" alchemists.io/screencasts/git_rebase_drop alchemists.io
  111. Git Rebase Resolution git rebase --abort git rebase --continue git

    rebase --skip git rebase --show-current-patch alchemists.io
  112. 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" alchemists.io/screencasts/git_commit_fixup alchemists.io
  113. 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" alchemists.io/screencasts/git_commit_fixup alchemists.io
  114. 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 alchemists.io/screencasts/git_commit_fixup alchemists.io
  115. 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 alchemists.io/screencasts/git_commit_fixup alchemists.io
  116. 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 alchemists.io/screencasts/git_commit_fixup alchemists.io
  117. 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 alchemists.io/screencasts/git_commit_fixup alchemists.io
  118. 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 alchemists.io/screencasts/git_commit_fixup alchemists.io
  119. 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" alchemists.io/screencasts/git_commit_fixup alchemists.io
  120. 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" alchemists.io
  121. 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" alchemists.io
  122. 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 alchemists.io
  123. 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" alchemists.io
  124. 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" alchemists.io
  125. 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 alchemists.io
  126. 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 alchemists.io
  127. 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 alchemists.io
  128. 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 alchemists.io
  129. Git Commit (fixup) ca5a69955876 Added initial implementation 3226a5547e49 Added table

    of contents 8450b65fc5ec Fixed JSON schema git log --pretty=format:"%h %s" alchemists.io
  130. 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" alchemists.io/screencasts/git_commit_squash alchemists.io
  131. 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 alchemists.io/screencasts/git_commit_squash alchemists.io
  132. 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 alchemists.io/screencasts/git_commit_squash alchemists.io
  133. 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 alchemists.io/screencasts/git_commit_squash alchemists.io
  134. 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 alchemists.io/screencasts/git_commit_squash alchemists.io
  135. 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 alchemists.io/screencasts/git_commit_squash alchemists.io
  136. (⚡ fast rebase ⚡) GIT_EDITOR=true git rebase --interactive main Git

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

    Git Rebase CLI alchemists.io/projects/dotfiles alchemists.io
  138. [rebase] abbreviateCommands = true autoSquash = true autoStash = true

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

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

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

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

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

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

    ~/.gitconfig: github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt alchemists.io
  146. [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): github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt alchemists.io