High-level
command line interface
for Git

A workflow layer on top of vanilla Git

Git is a great foundation for source code management. It provides all required pieces of functionality,
and supports many different ways of using it equally well.

It is intentionally generic and basic, though.
Using it properly as a developer is cumbersome and repetitive.
For example, correctly merging a finished feature branch requires
up to 15 individual Git commands!

Git Town adds a layer of high-level commands to Git.
They perform typical development workflow operations
like creating or shipping feature branches,
similar to how an expert Git user would do it.
All while being as generic and unopinionated as Git.

FAQ

Does this force me into any conventions for my branches or commits?

Not at all.
Git Town doesn’t require or enforce any particular naming convention or branch setup.
It works with a wide variety of Git branching models and workflows.

Which Git branching models are supported by Git Town?

Git Town is so generic that it supports all the branching models that we are aware of,
amongst others
GitHub Flow,
Git Flow,
GitLab Flow,
or even committing straight into the master branch!

How is this different from Git Flow?

Git Flow is a Git extension that provides specific and opinionated support
for the powerful Git branching model with the same name.
It doesn’t care too much about how you keep your work in sync with the rest of the team.

Git Town doesn’t care which branching model you use.
It focusses on keeping your team synchronized and your code repository clean.

It is possible (and encouraged) to use the two tools together.

Is it compatible with my other Git tools?

Yes, we try to be good citizens.
If you run into any issues with your setup, please
let us know!