So I have migrated from Slice Machine to Type Builder and I have a big concern that my development process is going to be completely upset.
When using Slice Machine, any changes to types and slices were inherent to my codebase (Next.js by the way). So I could create Git branches with changes to types or slices and work on that branch, then set that work aside and go back to another branch and Slice Machine would reset everything to this branch.
Using Type Machine, the types and slices are inherent to the repository, so if I change branches I don't seem to have any option but to pull any changes made in the repo into my branch. There doesn't seem to be any way to push from my codebase to the repo.
You haven’t misunderstood the core difference. Type Builder and Slice Machine do not have identical workflows.
With Slice Machine, your models were naturally tied to your local codebase. So when you changed Git branches, your custom types and slices followed the branch, because they lived with the project files.
If you want to keep a workflow closer to Slice Machine, the recommended path is to use the Prismic CLI rather than Type Builder as your main modeling surface. With the CLI, you can keep the local/code-first workflow: make model changes from your project, keep them tied to your Git branch, review them in your codebase, and then push them to Prismic with prismic push.
For your use case, where Git branches are important to your modeling workflow, the CLI is likely the best replacement. Type Builder is available, but you don’t have to use it as the primary way to edit your models.