View On GitHub

command line interface for Git

Git Town is an open-source Git plugin.
It adds Git commands that make collaborative software development more efficient and safe.

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.

View screencastview tutorial

Powerful commands

Git Town adds a number of high-level Git commands that automate typical operations in the software development workflow.

$ git town hack

Cuts a new up-to-date feature branch off the main branch.

$ git town sync

Updates your current branch with all ongoing changes.

$ git town new-pull-request

Create a new pull request on GitHub, Gitea or Bitbucket for your current branch.

$ git town ship

Delivers your completed feature branch and removes it.

View all commands


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!