Learn how to make changes to mid-stack branches and auto-restack seamlessly with Graphite CLI.
gt checkout
to hop between branches in your stack
gt modify
gt submit
gt modify
to continuously amend the commit on the branch (recommended)
gt modify --commit
each time you make changes
gt modify
command amends the commit on the branch. Here’s how you would address feedback on a branch in the middle of your stack by amending a commit:
gt modify
with the --commit
flag:
gt modify
will automatically restack any upstack branches on top of your new changes and provide the following output:
gt modify
encounters any conflicts as they recursively restack your branches, you’ll be prompted to resolve your conflicts before continuing:
gt rebase --abort
.
Read more about restacking branches.
gt rebase --abort
currently passes through to git rebase --abort
, which may leave you on a different branch than the one you were initially modifying.gt modify
allows you to make changes to a single branch in your stack, Graphite also provides gt absorb
, which automatically applies your changes to the relevant branches throughout your stack, without needing to check each one out individually.
Each change will be amended into the correct commit in a branch downstack from the currently checked out branch, inclusive.
Before applying the changes, gt absorb
will show which lines will be absorbed into each commit, and prompt for confirmation (unless the --force
flag is passed).
gt absorb
work?gt absorb
attempts to “commute” the change with each commit in your stack to find the most recent commit that they do not commute with, which tends to be the correct commit to amend them to. It is possible that a hunk commutes all the way down to your trunk branch, in which case it will not be absorbed into any commit. In this case, you can then apply those changes to the correct branch manually with gt checkout
and gt modify
.