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 pull Merge Workflow git switch --create example git commit

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

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

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

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

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

    ... git pull git push Synchronize: 1⃣ 2⃣ 3⃣ Push: Work: origin main
  7. 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
  8. 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
  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
  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
  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
  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
  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
  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: --rebase origin main
  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: --force-with-lease --force-if-includes --rebase origin main
  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: --force-with-lease --force-if-includes 💡 --rebase origin main
  17. [pull] rebase = true Git Configuration (Pull) 🚫 git pull

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

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

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

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

    --prune ✅ git fetch ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  23. [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
  24. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  25. [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>
  26. [push] autoSetupRemote = true default = simple followTags = true

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt
  27. [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
  28. [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 🚫
  29. [push] autoSetupRemote = true default = simple followTags = true

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

    useForceIfIncludes = true Git Configuration (Push) ~/.gitconfig: https://github.com/bkuhlmann/dotfiles/blob/main/home_files/.gitconfig.tt 💡
  31. [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
  32. [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
  33. [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 🚫
  34. [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
  35. 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>]
  36. 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>]
  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>]
  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>]
  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>] 🚫 🚫 🚫
  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 = 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
  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 = 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
  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
  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
  44. 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
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. Git Rebase Editor pick 2dc5e2e29e22 Added initial implementation f7a6ea7f46b8 Added

    documentation pick 317ef2c2c735 Fixed JSON schema https://www.alchemists.io/screencasts/git_rebase_reword
  53. 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
  54. 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
  55. 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
  56. Git Rebase Editor Provides improved navigation within the README. This

    was autogenerated using `tocer --generate`. https://www.alchemists.io/screencasts/git_rebase_reword
  57. 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
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. 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
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. 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 🤢
  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. https://www.alchemists.io/screencasts/git_rebase_squash
  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. https://www.alchemists.io/screencasts/git_rebase_squash Subject Subject Subject
  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. https://www.alchemists.io/screencasts/git_rebase_squash Body Body Body
  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. 🚫 https://www.alchemists.io/screencasts/git_rebase_squash
  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`. https://www.alchemists.io/screencasts/git_rebase_squash
  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`. 🚫 https://www.alchemists.io/screencasts/git_rebase_squash
  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`. 🚫 https://www.alchemists.io/screencasts/git_rebase_squash
  80. 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
  81. 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
  82. 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
  83. 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
  84. Git Rebase Editor Added initial implementation First initial working implementation

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

    with README autogenerated with `tocer --generate`. ✅ https://www.alchemists.io/screencasts/git_rebase_squash
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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."
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. Git Rebase Resolution git rebase --abort git rebase --continue git

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

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

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

    Git Rebase CLI https://www.alchemists.io/projects/dotfiles
  136. [rebase] abbreviateCommands = true autoSquash = true autoStash = true

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

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

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

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

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

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

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