gt
uses native git
commands and stores all of the metadata on your stacks in the .git
folder in your repo. We intend gt
to entirely replace git
in your workflow, but if you ever need to do something more advanced, you can always jump back to git
and then sync your changes with Graphite.gt
will pass any unrecognized commands thru to git
, so you can run commands like gt status
or gt remote
, even though they aren't native commands in gt
.gt
vs. git
- you can (and should) use gt
for everything! For commands like gt branch
which differ from their git equivalents, we recommend using the gt
version to automatically keep your stacks in sync.git
git
instead of gt
to create a branch or commit and want to make sure it's properly tracked in Graphite, you can do the following to make sure your stacks are up-to-date:gt stack fix --rebase
will automatically update PRs and commits created outside of gt
to reflect Graphite's record of your stacks - i.e. if you create a new branch or commit mid-stack and then run gt stack fix --rebase
, Graphite will rebase the upstack changes to prevent your stack from forking.git
git
and then rebuild Graphite's record of your stacks based on the dependencies of your git branches, you can run the following command:gt stack fix --regen
will update Graphite's record of your stacks to reflect branch dependencies in your git repo - i.e. if you create a new branch or commit mid-stack and then run gt stack fix --regen
, Graphite's record of your stacks will now show that you've intentionally added a fork in your stack.