I use Graphite at {{ day job }} and it's pretty good. I strongly dislike having to use their git wrapper CLI `gt` though. git does already support this out of the box.
So instead, this uses git primitives and just drops that handy comment in Github to visualize the stack.
Hey! Mostly just rebase out of habit actually, but I've been exploring --update-refs recently.
Two things come to mind that I don't love about `gt`:
- the philosophy of "every commit is a PR" falls apart sometimes. Sometimes I want to logically separate commits in a PR—but not every commit passes CI. This makes it easier to review. Or call out optional changes that can easily be dropped.
- It broke my workflow in a few ways. The one thing I notice the most is that I like to "pop" a commit into staged changes and make edits. So I can easily see a diff of what I'm editing. I expected `gt modify` to do this. So instead I git reset --soft, commit, and `gt submit`
So instead, this uses git primitives and just drops that handy comment in Github to visualize the stack.