Git Town is an open-source Git plugin.
It adds Git commands that make collaborative software development more efficient and safe.
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.
Git Town adds a number of high-level Git commands that automate typical operations in the software development workflow.
Cuts a new up-to-date feature branch off the main branch.
Updates your current branch with all ongoing changes.
Create a new pull request on GitHub, Gitea or Bitbucket for your current branch.
Delivers your completed feature branch and removes it.
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.
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!
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.
Yes, we try to be good citizens. If you run into any issues with your setup, please let us know!